数字3文字です。振込先の支店番頭をセルD4にセットします。本マクロでは仮データとして「INDEX(社員データ!$A$2:$I$11,MATCH($R4,社員データ!$A$2:$A$11,0),6)」をセットしています。「社員データ」ワークシートから該当の番号を抽出しています。文字列7文字です。「BizStation」では「スペース」をセルP4にセットします。本マクロでは「REPT(” “,7)」セットしています。これは「全銀形式(データ)」ワークシートのデータをコピーして、「全銀形式(ソート)」ワークシートに値の貼り付けをおこなうサブルーチンです。 「TranscribeData」とは「データの転記」という意味です。転記する前に「全銀形式(ソート)」ワークシートの値をすべてクリアしています。このマクロが何回も利用されることを想定してこの処理を追加しています。この処理は「全銀形式(データ)」ワークシートが作業の要であることから、このデータそのものを並べ替えては次の利用時に影響が出るので、いったん「値専用」のシートに転記することを考えました。数字1文字です。ヘッダレコードを意味する「1」をセルA1にセットします。本マクロではデータ件数を20件としています。設定を変更すれば、好きな件数をデータ件数にすることができます。1行分のデータをコピーして残りの行に貼り付けます。三菱東京UFJ銀行の各支店の店番・店名・店名(カナ)・カナ文字数の各項目があります。レコードフォーマットにしたがって店名(カナ)の文字数を30文字にしています。このシートの各項目を次の「社員データ」のワークシート上で処理する場合は、このシートは不要です。各銀行の全支店のデータを集めようとすると、膨大になりますので、ご注意ください。数字1文字です。エンドレコードを意味する「9」をセルA3にセットします。数字4文字です。振込先の銀行番号をセルB4にセットします。本マクロでは仮データとして「三菱東京UFJ銀行」の「0005」をセットしています。メイン処理は、変数宣言とサブルーチンの呼び出しのみに特化しています。3つのサブルーチンと1つの関数の呼び出しをおこない、全体の処理を終了しています。具体的には、1レコードあたり120バイトのデータで、ヘッダ・レコード、データレコード、トレーラー・レコード、エンド・レコードの4種類の異なるフォーマットのレコードを1ファイルにしたものです。これはセルのデータを配列に格納(Store)するサブルーチンです。バリアント型変数のvDataに「値専用」シートのデータを一括で代入します。これはマクロを高速化する有力な手段のひとつです。このマクロでは、各銀行独自のCSVフォーマットではなく、本来の全銀形式のテキストフォーマットを、エクセル上のデータから作成します。数字1文字です。「BizStation」では「0」固定です。仮データではその「0」をセルK4にセットしています。まず合計件数を取得します。何件分の処理をするのかを確定します。「全銀形式(データ)」ワークシートをコピーして、「全銀形式(ソート)」ワークシートに値を貼り付けます。この貼り付けた値がテキストファイルにセットされるデータになります。この値のデータを、エクセルの機能をVBAから利用して並べ替えます。並べ替えた値のデータは高速に扱うためにいったん配列に格納します。その配列に格納された値のデータを二重の「For ~ Next」を回しながら連結し、文字列変数に格納します。最後に文字列変数をテキストファイルに書き出して終了です。文字列10文字です。依頼人(このマクロを使おうとしている方)が定めた受取人識別のための顧客コードをセルL4にセットします。本マクロでは仮データとして「TEXT(支払データ!$B5,”0000000000″)」をセットしています。「支払データ」ワークシートから該当の顧客コード(社員番号)を抽出しています。また、作業用列のR列に「支払データ!$B5」をセットしています。「全銀形式(データ)」ワークシートのデータの「値」だけをコピペします。この「値」を元にテキストファイルを作成します。数字1文字です。トレーラーレコードを意味する「8」をセルA2にセットします。文字列1文字です。「BizStation」では前述した顧客コード2をセットする場合は「X」を、セットしない場合は「スペース」をセルO4にセットします。また、説明は省略しますが、「EDI情報」をセットする場合は「Y」をセットします。できれば「総合振込(全銀形式)レコードフォーマット」を印刷して手元に置き、「全銀形式(データ)」を開いておくことをおススメします。「総合振込(全銀形式)レコードフォーマット」ワークシートはレコードフォーマットの内容を説明しています。ワークシートの設計・マクロの設計はすべてこのレコードフォーマットに従っています。常に手元に置いて確認することをおススメします。「支店コード」ワークシートには三菱東京UFJ銀行の全支店の支店のデータが掲載されています。「社員コード」ワークシートには振込先となる社員のデータが掲載されています。「部門コード」ワークシートには社員の所属部門のデータが掲載されています。「支払データ」ワークシートには支払の各明細のデータが掲載されています。最も重要なワークシートです。「全銀形式(データ)」ワークシートには上述の各ワークシートから集計されたデータがレコードフォーマットに従った書式で主に関数で掲載されています。「全銀形式(ソート)」ワークシートはマクロで使用します。主に集計されたデータの「値」が掲載されています。このシートを元にテキストファイルを作成します。部門コード・部門名称の各項目があります。経営管理上、各部門ごとに経費を集計する必要がある企業が多いと思います。そのための部門コードと部門名です。インターネット・バンキングのシステムからフィードバックされるデータに部門コードを登録しておくことができます。数字1文字です。データレコードを意味する「2」をセルA4にセットします。今回はエクセルの機能を利用して並べ替えていますが、並べ替え(ソート)は奥が深いです。はじめはいわゆる「バブルソート」や「クイックソート」などを利用しようとしましたが、大量のデータを扱うときはやはりエクセルの機能を利用した方が高速化できるので、そちらにしました。数字4文字です。通常は「スペース」4文字をセルF4にセットします。本マクロでは仮データとして「REPT(” “,4)」をセットしています。文字列30文字です。振込の受取人名をセルI4にセットします。本マクロでは仮データ「INDEX(社員データ!$A$2:$I$11,MATCH($R4,社員データ!$A$2:$A$11,0),3)」をセットしています。「社員データ」ワークシートから該当の受取人名(社員名(カナ))を抽出しています。みなさんは「総合振込」というものをご存知ですか?経理をなさったことがある方ならご存知かもしれません。総合振込は一般に「総振(そうふり)」と呼ばれています。ふつうはATMから1件ずつ振込をしますが、総振は会社のパソコンなどから何件かの振込をまとめて処理します。つまり、インターネットバンキングを利用した企業向け振込サービスです。数字10文字です。1.(BizStationの契約者ならば)契約者番号か、2.(企業コードを利用している場合は)企業コードか、3.「スペース」10文字をセルD1にセットします。「(データ)受付日」「振込(実行)日」「部門コード」「部門名」「社員番号」「社員名」「支払金額」「合計件数」「合計金額」の各項目があります。このワークシートは、簡易版の振込明細表になります。印刷して保存しておくなどの利用方法が考えられます。この中で実際に本マクロで利用するのは、「振込(実行)日」「部門コード」「社員番号」「支払金額」「合計件数」「合計金額」です。文字列101文字です。「BizStation」では「スペース」をセルD2にセットします。本マクロでは「REPT(” “,101)」をセットしています。これは配列の要素を文字列変数に格納する関数です。「For ~ Next」を二重に回して、配列の各要素を連結しながら文字列変数に代入していきます。文字列7文字です。本マクロでは仮データとして「=REPT(” “,17)」をセットしています。数字4文字です。ご自分のお使いになっているインターネットバンキングの銀行の銀行番号をセルG1にセットします。「BizStation」の場合は「三菱東京UFJ銀行」ですので、「0005」になります。文字列10文字です。依頼人(このマクロを使おうとしている方)が定めた受取人識別のための顧客コードをセルM4にセットします。本マクロでは仮データとして「TEXT(支払データ!$C$2,”0000000000″)」をセットしています。「支払データ」ワークシートから該当の顧客コード(部門コード)を抽出しています。この「顧客コード2(数字のみ)」をセットする場合は、後述する「識別表示」は「X」をセットします。文字列15文字です。振込先の支店名をセルE4にセットします。本マクロでは仮データとして「INDEX(社員データ!$A$2:$I$11,MATCH($R4,社員データ!$A$2:$A$11,0),7)」をセットしています。「社員データ」ワークシートから該当の支店名を抽出しています。セルA4~セルR4の数式をセルA5~セルR23にコピーして本マクロを利用する前準備とします。数字1文字です。1.普通預金を意味する「1」か、2.当座預金を意味する「2」をセルK1にセットします。本マクロでは仮データとして「1」をセットしています。文字列15文字です。振込先の銀行名をセルC4にセットします。本マクロでは仮データとして「”ミツビシトウキヨウUFJ”&REPT(” “, 2)」をセットしています。数字12文字です。合計金額をセルC2にセットします。本マクロでは「TEXT(支払データ!D27,”000000000000″)」をセットしています。数字4文字です。振込指定日をセルF1にセットします。本マクロでは仮データして「=TEXT(支払データ!$B$2,”mmdd”)」をセットしています。「支払データ」ワークシートのセルB2の値「2016/10/05」をTEXT関数で「mmdd」という書式に変換しています。文字列15文字です。ご自分のお使いになっているインターネットバンキングの銀行の銀行名をセルH1にセットします。本マクロでは仮データとして「=”ミツビシトウキヨウUFJ”&REPT(” “,2)」をセットしています。数字1文字です。「BizStation」ではテレ振込を意味する「7」をセルN4にセットします。各項目(の文字数など)をレコードフォーマットに合わせて調整するワークシートです。基本的にこのシートがテキストファイルの大元になります。さまざなな関数を用いて調整しています。数字1文字です。振込先の口座の預金種目をセルG4にセットします。本マクロでは仮データとして「INDEX(社員データ!$A$2:$I$11,MATCH($R4,社員データ!$A$2:$A$11,0),8)」をセットしています。「社員データ」ワークシートから該当の預金種目を抽出しています。数字10文字です。振込金額をセルJ4にセットします。本マクロでは仮データ「TEXT(支払データ!$D5,”0000000000″)」をセットしています。「支払データ」ワークシートから該当の金額を抽出しています。数字2文字です。総合振込を意味する「21」をセルB1にセットします。これは文字列変数に格納された「値」データをテキストファイルに書き込むサブルーチンです。テキストファイル名は「全銀形式」+「振込日」+「合計件数」+「合計金額」+「年月日」+「時分秒」という形式になっています。「Print #1, s;」というふうに「Print」コマンドの最後に「セミコロン(;)」が付いていますが、「セミコロン」があると、ファイルの最後尾に改行マーク(Enter)を付与しません。数字1文字です。1.使用文字コード「JIS」を意味する「0」か、2.使用文字コード「EBCDIC」を意味する「1」か、3.「スペース」をセルC1にセットします。通常は「スペース」1文字でかまいません。数字7文字です。振込先の口座番号をセルH4にセットします。本マクロでは仮データ「TEXT(INDEX(社員データ!$A$2:$I$11,MATCH($R4,社員データ!$A$2:$A$11,0),9),”0000000″)」をセットしています。「社員データ」ワークシートから該当の口座番号を抽出しています。文字列40文字です。振込依頼人名を左詰めでセルE1にセット(残りはスペース)します。本マクロでは仮データとして、「=”ナイアガラ.エキスプレス.トレード(カ”&REPT(” “,18)」をセットしています。「”ナイアガラ.エキスプレス.トレード(カ”」が社名で「REPT(” “,18)」が残りのスペース18文字分です。「総合振込(全銀形式)レコードフォーマット準拠テキストファイル作成マクロ」は、その名のとおり、総合振込(全銀形式)レコードフォーマットに規定されたルールにしたがって、エクセル上の振込データをテキストファイルに変換するマクロです。数字3文字です。ご自分のお使いになっているインターネットバンキングの銀行の支店番号をセルI1にセットします。本マクロでは仮データとして「001」をセットしています。社員番号・社員氏名・社員氏名(カナ)・銀行コード・銀行名(カナ)・支店番号・支店名(カナ)・預金種目・口座番号・社員名(カナ)の各項目があります。レコードフォーマットにしたがって社員氏名(カナ)の文字数を30文字にしています。その他の項目で文字数の調整が必要なものは別のワークシート上で調整しています。本マクロの仮データでは、振込先の口座は「三菱東京UFJ銀行」の口座に限定していますが、この社員データ上で各銀行の口座を登録しておけば、さまざまな銀行の口座に振り込むことができます。数字6文字です。合計件数をセルB2にセットします。本マクロでは「TEXT(支払データ!D26,”000000″)」をセットしています。文字列119文字です。「BizStation」では「スペース」をセルB3にセットします。本マクロでは「REPT(” “,119)」をセットしています。数字7文字です。ご自分のお使いになっているインターネットバンキングの銀行の口座番号をセルL1にセットします。本マクロでは仮データとして「1234567」をセットしています。これは「値専用」のシートのデータをエクセルの機能を利用して並べ替えるサブルーチンです。セルQ1に「1」を代入して、オートフィルを使ってすべてのデータに番号を振っています。オートフィルのオプションで「Type:=xlLinearTrend」を使っていますが、これは「連続データ」を付与するときに使うオプションです。A列のデータ区分の数値とQ列の連続データの数値を利用して並べ替えます。文字列15文字です。ご自分のお使いになっているインターネットバンキングの銀行の支店名をセルJ1にセットします。本マクロでは仮データとして「=”ホンテン”&REPT(” “, 11)」をセットしています。