全銀フォーマット
全銀フォーマットを生成するマクロを作ってみた
ネットバンクなどではCSV形式での振込データに対応しているところがある。
こういった銀行は、総合振込などのデータをエクセルなどで予め作成しておき、それをアップロードすれば振込データに変換できるので便利だ。
ただ銀行によってはCSVに対応しておらず、「全銀フォーマット形式」のみに対応しているところがある。
全銀フォーマットというのは詳しくはググれば出てくるが、
- データ形式:全行固定長テキスト
- 文字コード:Shift-JIS(正確にはその前規格であるJISだが全角文字は使用しないのでコード自体は同じ)
- 改行コード:LF
- レコード長:120バイト固定長(改行コードを含む)
- 使用できる文字:半角数字・アルファベット半角大文字・カタカナ半角大文字(ただし「ヲ」を除く)
- 未使用領域はすべて半角スペースでパディング(たとえ行末であっても)
という決まりに沿って作成したテキストデータのことだ。(サンプルはこんな感じ。右クリックしてリンク先を保存すれば文字化けせずに確認できると思う)
1973年に稼働開始された「全国銀行データ通信システム」という手形交換制度用のデータ伝送規格で、COBOLで扱いやすいデータ構造になっているようだ。
銀行通帳に印字されている文字は、漢字や平仮名はおろかカタカナですら「ウィズ」や「カイシャ」などの小文字カナも無く、「ウイズ」「カイシヤ」となっているが、これらは全銀フォーマットの影響だと思われる。
ちなみに長音(「キーボード」などの伸ばし記号)すら使えず、ハイフンで代用する決まりになっている。
この全銀フォーマットデータを手入力で作成するのはあまりに大変なので、簡素なものではあるがVBAでツールを作成してみた。
以下のZIPファイルをダウンロードし解凍すると「all_bank.xlsm」ができるので、それをダブルクリックしてマクロを有効にすれば使用できる。
全銀フォーマット作成ツール(Ver.1.3)のダウンロード(all_bank.zip)
現状では総振しか動作確認をしていない。
また「全銀」と名乗りながらも本当に全国すべての銀行に対応しているかというとそうでもない。
特に振込日付がゼロパディング(4月8日を「0408」と表記する)の銀行とスペースパティング(「 4 8」と表記する)の銀行があり、どちらかが上位互換というわけでもないのが厄介だ。
私の住む地域ではスペースパティングの銀行のほうが多かったので、このVBAもスペースパティングのデータを生成するようにしているため、ゼロパディングの銀行だとエラーで弾かれてしまうかもしれない。
総振以外や地方銀行などはやってみないと分からない。(といっても突然関係のない口座へ振り込んでしまうというようなことはまず起こらない。ネットバンクのシステム側で必ずデータのチェックが入るので、問題があればエラーが出るはずだ)
以下、簡単に手順。
- 銀行から発行してもらう「委託者コード」が必要になるので、事前に入手しておく。
- 「自社情報の編集」をクリックして自社情報を入力する。
- 振込実行日を選択する(今日~30日後まで選択できる。(月2桁+日2桁の数字4桁))」
- 「振込データ作成」ボタンをクリックするとサンプルデータが入っているので、これをすべて削除した後に、相手の口座情報を入力する。(このときカナはすべて半角で入力し、「ィ」や「ャ」などの小さなカナを使わないように注意する)
- 番号は先頭のゼロを省略して入力する。(「0001」は「1」と入力する)
- 9999行までは変換対象になるが、仕向銀行番号セルが空白の行があるとその行以降は転写されない。
- 入力が終わったら、左上の戻るボタンをクリックする。
- 「全銀フォーマット生成」ボタンをクリックすると、全銀フォーマットファイルが生成されてフォルダが開く。(通常のテキストデータのアイコン)
- このファイルを、ネットバンクへアップロードすれば使用できる。(はず)
拙いプログラムですが、自由に改変・頒布してもらって構いません。
ただしこのツールを使用したことで、いかなるトラブルや損害が生じても当方は一切関与しないものとします。(お約束)
|