資料室 > ファイル形式変換 > Excelブック→他形式ファイル > 固定長テキストファイルに

固定長テキストファイルに

エクセルのシートから固定長のテキストファイルに出力するには?
テキスト形式・CSV形式で保存すると、セルの区切り文字としてtabやカンマが追加されたテキストになるが、tabコードやカンマのない、一行が固定長となるようなテキスト形式での保存の仕方。

【手順1】

prn形式で保存する。

  1. 対象となるシートの各列幅をデータが全て表示されるように調節する。
  2. [ファイル(F)]>[名前をつけて保存(A)]
  3. [ファイルの種類(T)]を「テキスト(スペース区切り)(*prn)」に。
  4. [ファイル名(N)]を任意のファイル名を入力して[保存(S)]
  5. ファイルエクスプローラなどで保存したフォルダを表示。
  6. 拡張子.prnで保存されるので、拡張子を.txtに変更。

prn形式はLotus1-2-3でのファイル保存形式の一つである。
この方法で保存した場合、「画面表示を印刷した状態」に近い形でテキストファイルに出力される。が、あくまで「近い形」であって、見た目の幅となかなか同一にはならないし、わずかに幅が足りなくて数文字分出力されない、ということも発生するので、実際に出力されたものを確認しながら列幅を調節していくしかない。

【手順2】

別シートに固定長テキストのデータを作成する。
A列、B列のデータをそれぞれ10Byte、合計20Byteの固定長テキストにする例。

  1. Shift+F11キーで新規シート追加。
  2. 追加した新規シートのA1へ下記数式を入力
    =REPT(" ",10-LENB(Sheet1!A1))&Sheet1!A1&REPT(" ",10-LENB(Sheet1!B1))&Sheet1!B1
  3. A1の数式コピー、必要数A列へ貼り付け。
  4. [ファイル(F)]>[名前をつけて保存(A)]
  5. [ファイルの種類(T)]を「テキスト(タブ区切り)(*.txt)」に。
  6. [ファイル名(N)]を任意のファイル名を入力して[保存(S)]

REPT(" ",10-LENB(Sheet1!A1))&Sheet1!A1 で、Sheet1!A1のデータを固定長10Byteのテキストを作成している。REPT(" ",10-LENB(Sheet1!A1))でSheet1!A1のByte数に合わせた半角スペースを追加する。
数式入力の手間はあるが、前項のprn形式での保存よりはより的確に意図する固定長データを作成することが出来る。


前(txt形式で右揃え) 目次 次(他形式ファイル→Excelブック)


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送