「StiLL」 デザイン情報184 StiLLコマンド--固定長コテイチョウのテキストデータ(文字列モジレツ)から任意ニンイ部分ブブン
                             
  【テーマ】テキストファイルから読込んだ固定長のデータから任意ニンイ文字列モジレツ(項目データ)を取り出す方法をご紹介します。     方法ホウホウ】文字操作を行うExcel関数(MIDB、LEFTB、RIGHTBなど)を使って取り出します。これを「セルデータコピー(MakeBtCellCopy)」で対象範囲にコピーする方法と「Excelデータ抽出(MakeBtRecordQuery)」を使う方法で処理ショリ自動化ジドウカハカれます。     参考サンコウ】「セルデータコピー(MakeBtCellCopy)」 の実行結果を値にする方法ホウホウについては「ご参考サンコウまでに」をごランください。  
  対応Ver. :StiLL-XV1.0 以降
対応種類:StiLL Std・Dev・Pro
    対応Ver. :StiLL-XV1.0 以降
対応種類:StiLL Std・Dev・Pro
    対応Ver. :StiLL-XV1.0 以降
対応種類:StiLL Std・Dev・Pro
 
                             
 今回コンカイ内容ナイヨウ  
テキストファイルなどから読込ヨミコまれた文字列モジレツ固定長コテイチョウ)から項目コウモクとして任意ニンイ部分ブブン手順テジュンについてご紹介ショウカイします。
ずは MIDB、LEFTB、RIGHTBなどの Excel関数カンスウ操作ソウサ基本キホンとなりますのでここでしっかりオボえておきましょう。
文字列モジレツシキをStiLLボタン「セルデータコピー(MakeBtCellCopy)」 または 「Excelデータ抽出チュウシュツ(MakeBtRecordQuery)」を
使うことで複数行のテキストデータから必要な項目値を取り出す処理ショリ自動化ジドウカすることができて大変タイヘン便利ベンリです。
■ Excel関数カンスウ文字列モジレツ操作ソウサ)のおさらい  
レイ下図カズのようにセルE15に商品コード、商品名、単価のカク項目コウモクがそれぞれ5桁、8桁、4桁で構成された
   固定長のテキストデータがあるとします。
   セルE15="A0001カキ      120 "    (商品名、単価タンカの余白はスペース)
(テキストデータのメージ)
 このデータから各項目の値を取り出す関数カンスウ使ツカカタについて説明セツメイします。
1.セルG15に商品ショウヒンコード(5ケタ)を文字列モジレツヒダリハシから文字数モジスウ場合バアイはLEFT関数カンスウ使ツカえます。
セルG15=LEFTB(E15,5) ・・・ "A0001" がされます。
またMID関数カンスウ使ツカってすこともできます。
セルG15=MIDB(E15,1,5) ・・・ "A0001" が取り出されます。
2.セルH15に商品名ショウヒンメイ文字列モジレツアイダにある文字モジ場合バアイはMID関数カンスウ使ツカいます。
セルH15=MIDB(E15,6,8) ・・・ "カキ      " がされます。
商品名ショウヒンメイハジまるケタ位置イチは6ケタ、また商品ショウヒンメイは8ケタなので上記ジョウキのようになります。
なお商品名ショウヒンメイ余白ヨハク(スペース)をノゾ場合バアイはTRIM関数カンスウ併用ヘイヨウします。
セルH15=TRIM(MIDB(E15,6,8)) ・・・ "カキ" がされます。
3.セルI15に単価タンカ(4ケタ)を文字列モジレツ右端ミギハシから文字数モジスウ場合バアイはRIGHT関数カンスウ使ツカえます。
セルI15=RIGHTB(E15,4) ・・・ ”120 ” がされます。
またMID関数カンスウ使ツカってすこともできます。
セルI15=MIDB(E15,14,4) ・・・ ”120 ” が取り出されます。
なお数値スウチとして場合バアイ以下イカのように1をかけることで数値スウチ変換ヘンカンされます。
セルI15=RIGHTB(E15,4)*1 ・・・ 120 がされます。
■ 「セルデータコピー(MakeBtCellCopy)」 を使ツカった設定セッテイ方法ホウホウ  
セルE16以降イコウのテキストデータから「セルデータコピー(MakeBtCellCopy)」を使ツカってカク項目コウモクアタイ設定セッテイ説明セツメイします。
下図カズ前段ゼンダンシメしたシキスウシキセル(G15,H15,I15)それぞれに入力ニュウリョクして14行目ギョウメ項目コウモクメイ設定セッテイした状態ジョウタイシメしています。
このセルG15からI15に入力ニュウリョクしたシキをG16からI19の対象タイショウ範囲ハンイムラサキワク)に「セルデータコピー(MakeBtCellCopy)」でコピーします。
貼り付け種類は「数式」(赤枠)を選択します。
上図ジョウズ設定セッテイオコナ実行ジッコウすることで複数行フクスウギョウのテキストデータを対象タイショウとして各行カクギョウ複数フクスウ項目コウモク取得シュトクすることができます。
実行結果ジッコウケッカ
 緑枠内に式が設定されます。
■ 「Excelデータ抽出(MakeBtRecordQuery)」を 使ツカった設定セッテイ方法ホウホウ  
「Excelデータ抽出(MakeBtRecordQuery)」を使って同様ドウヨウ処理ショリオコナうことができます。
 設定セッテイイメージをします。  (「出力セル位置」をK列からとします)
 「項目コウモクシキ範囲ハンイ」は下図カズの「項目コウモクシキ作成サクセイ」をオコナった4項目分の設定セッテイ範囲ハンイ指定シテイします。(参照サンショウシキ設定セッテイイメージ)
 「項目コウモクシキ作成サクセイ」の設定セッテイでは下図カズのように「商品ショウヒンコード」「商品名ショウヒンメイ」「単価タンカ」(アカワク)を入力ニュウリョクして新規シンキ作成サクセイします。
 項目コウモク新規シンキ作成サクセイしたときは、シタの「該当ガイトウナシ」(紫枠ムラサキワク)をチェックします。
 ツギ項目コウモクシキランシキ入力ニュウリョクします。
 セッテイ入力ニュウリョクシキる式は「Excel関数(文字列操作)のおさらい」で設定セッテイしたオナ基本的キホンテキには同じです。
 ただし参照サンショウするData項目コウモクのセル位置イチがNレツわりますので注意チュウイしてください。
シキの設セッテイ定イメージ)
 ※上図ジョウズシキ’==ハジまるシキ)は結果ケッカアタイカエ設定セッテイです。
 設定セッテイ「Excelデータ抽出」ボタンをクリックすると複数行のテキストデータから同時ドウジ複数フクスウ項目の値を取得することができます。(青枠アオワクナイ
実行ジッコウ結果ケッカのイメージ)
 ※青枠内:「Excelデータ抽出(MakeBtRecordQuery)」 の実行結果ジッコウケッカ
   内:前段での「セルデータコピー(MakeBtCellCopy)」 の実行結果。
■ ご参考サンコウまでに  
1.「セルデータコピー(MakeBtCellCopy)」 の実行結果ジッコウケッカアタイにする場合バアイは、もうヒトつ「セルデータコピー(MakeBtCellCopy)」 を使ツカって
   「モトデータ範囲ハンイ」と「出力シュツリョクセル位置イチ」をオナじセルG15からI19にして、貼り付け種類を「アタイ」にしてコピーします。
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください)  
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます