項目名と桁数を表に並べておけば、ボタンを押すだけ。
固定長のテキストファイルを、CSVに変換するExcelマクロのコード全文です。
設定は3分で簡単。コードを貼るだけなので、マクロを書いたことがなくても大丈夫です。

■ これは汎用版です(ご購入前に必ずお読みください)
そのまま使えるコードをお渡しするものです。
御社のファイルに合わせた定義の作成や、下の「できないこと」への対応は含みません。
ご購入後の個別カスタマイズ対応もお付けしていません。
「うちのファイルでも使えるか知りたい」という場合は、プロフィールからご相談ください。
■ 動作環境(ここだけご確認ください)
・Windows版のExcelが必要です。Mac版のExcel、スマホ・タブレットでは動きません。
・Excelのマクロ(VBA)を使います。マクロ有効ブック(.xlsm)で保存していただきます。
(貼り付けから保存までの手順は、画像つきで載せています)
・会社のパソコンでは、マクロの実行が止められていることがあります。
その場合は動かせませんので、先に管理されている方へご確認ください。
・追加ソフトのインストールは不要です。インターネットにもつながずに動きます。
■ できること
・「定義」シートに、項目名と桁数を左から順に書くだけ
開始位置は自動で出るので、仕様書と見比べられます
・桁は「バイト」で数えます(全角2・半角1)。全角が混ざってもずれません
Shift_JIS と UTF-8(全角3バイト)の両方に対応
・先頭の0は消えません(「000123」は「000123」のまま)
消したい項目だけ消すこともできます
・改行の無いファイル(1件の長さで続いている形)も読めます
・先頭・最後の行を飛ばせます(ヘッダー行・トレーラー行)
・「試しに変換」で先頭100件をシートに出して、区切りが合っているかすぐ確認
・長さが合わない行、全角文字の途中で区切れる行は、止めずに「エラー行」シートへ
・出力は UTF-8(BOM付き/なし)・Shift_JIS、改行は CRLF・LF から選べます
・10万件(約6MB)で7秒ほど(筆者のパソコンで計測)

■ できないこと
・1つのファイルに、項目の並びがちがう行が混ざっている形
(ヘッダー行・明細行・トレーラー行で項目がちがう、など)
先頭・最後の行を「飛ばす」ことはできますが、それぞれを別々に変換はできません
・パック10進数など、文字ではないデータが入っているファイル
・EBCDIC(汎用機の文字コード)のファイル
(逆向きは別の記事で出しています。同じ定義表がそのまま使えます)
■ お渡しするもの
この記事の本文です。VBAコード全文と、貼り付け手順・使い方・
うまくいかないときの見方を載せています。ファイルの添付はありません。
Excelにコードを貼るだけ。使えるようになるまで3分です。
設定シートと定義シートは自動で作られます。あとは仕様書の項目名と桁数を写すだけです。
この記事は次の順で進みます。
【1】はじめに
【2】こんな作業を、ボタン1つに変えます
【3】固定長で、つまずきやすい3つ
【4】使えるようにするまで(3分)
【5】Alt + F8 に出てくる5つについて
【6】使い方
【7】結果の見方
【8】うまくいかないときは
【9】コード
【10】もっとこんなことをしたい場合
項目名と桁数を表に並べておけば、ボタンを押すだけ。
固定長のテキストファイルを、CSVに変換するExcelマクロのコード全文です。
設定は3分で簡単。コードを貼るだけなので、マクロを書いたことがなくても大丈夫です。
■ これは汎用版です(ご購入前に必ずお読みください)
そのまま使えるコードをお渡しするものです。
御社のファイルに合わせた定義の作成や、下の「できないこと」への対応は含みません。
ご購入後の個別カスタマイズ対応もお付けしていません。
「うちのファイルでも使えるか知りたい」という場合は、プロフィールからご相談ください。
■ 動作環境(ここだけご確認ください)
・Windows版のExcelが必要です。Mac版のExcel、スマホ・タブレットでは動きません。
・Excelのマクロ(VBA)を使います。マクロ有効ブック(.xlsm)で保存していただきます。
(貼り付けから保存までの手順は、画像つきで載せています)
・会社のパソコンでは、マクロの実行が止められていることがあります。
その場合は動かせませんので、先に管理されている方へご確認ください。
・追加ソフトのインストールは不要です。インターネットにもつながずに動きます。
■ できること
・「定義」シートに、項目名と桁数を左から順に書くだけ
開始位置は自動で出るので、仕様書と見比べられます
・桁は「バイト」で数えます(全角2・半角1)。全角が混ざってもずれません
Shift_JIS と UTF-8(全角3バイト)の両方に対応
・先頭の0は消えません(「000123」は「000123」のまま)
消したい項目だけ消すこともできます
・改行の無いファイル(1件の長さで続いている形)も読めます
・先頭・最後の行を飛ばせます(ヘッダー行・トレーラー行)
・「試しに変換」で先頭100件をシートに出して、区切りが合っているかすぐ確認
・長さが合わない行、全角文字の途中で区切れる行は、止めずに「エラー行」シートへ
・出力は UTF-8(BOM付き/なし)・Shift_JIS、改行は CRLF・LF から選べます
・10万件(約6MB)で7秒ほど(筆者のパソコンで計測)
■ できないこと
・1つのファイルに、項目の並びがちがう行が混ざっている形
(ヘッダー行・明細行・トレーラー行で項目がちがう、など)
先頭・最後の行を「飛ばす」ことはできますが、それぞれを別々に変換はできません
・パック10進数など、文字ではないデータが入っているファイル
・EBCDIC(汎用機の文字コード)のファイル
(逆向きは別の記事で出しています。同じ定義表がそのまま使えます)
■ お渡しするもの
この記事の本文です。VBAコード全文と、貼り付け手順・使い方・
うまくいかないときの見方を載せています。ファイルの添付はありません。
Excelにコードを貼るだけ。使えるようになるまで3分です。
設定シートと定義シートは自動で作られます。あとは仕様書の項目名と桁数を写すだけです。
この記事は次の順で進みます。
【1】はじめに
【2】こんな作業を、ボタン1つに変えます
【3】固定長で、つまずきやすい3つ
【4】使えるようにするまで(3分)
【5】Alt + F8 に出てくる5つについて
【6】使い方
【7】結果の見方
【8】うまくいかないときは
【9】コード
【10】もっとこんなことをしたい場合