【Excelマクロ】会計ソフトで処理してある前期以前の仕訳をfreeeに取り込むExcelファイルを作成するマクロ(記述②)

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

全自動のクラウド会計ソフトfreee(フリー)で前期以前の仕訳を取り込むためのExcelファイルを作成するマクロについて記載いたします。

今回は、VBAの記述の続きを記載いたします。

freeeマクロ作成_1

(前回までの記事)

関連記事 【Excelマクロ】会計ソフトで処理してある前期以前の仕訳をfreeeに取り込むExcelファイルを作成するマクロ(準備その①)

関連記事 【Excelマクロ】会計ソフトで処理してある前期以前の仕訳をfreeeに取り込むExcelファイルを作成するマクロ(準備その②)

関連記事 【Excelマクロ】会計ソフトで処理してある前期以前の仕訳をfreeeに取り込むExcelファイルを作成するマクロ(準備その③)

関連記事 【Excelマクロ】会計ソフトで処理してある前期以前の仕訳をfreeeに取り込むExcelファイルを作成するマクロ(記述①)

私が経理処理で使用するものを中心に記載しますので、基本的なVBAについての知識は、専門的なサイトで確認してください。

[aside type=”boader”](よくお世話になっているサイト)

LINK インストラクターのネタ帳

LINK Office TANAKA

LINK Office Pro

LINK Ex-it(ExcelとITで効率化して人生を楽しもう)[/aside]


前回(記述①)では、「変数の宣言」、「データクリアー」と「転記」のうち日付と伝票番号の転記について記載しましたので、今回は、その続きとなります。

勘定科目や補助科目によって、転記する項目が異なりますので、気を付けなければならないプログラムとなります。

勘定科目、取引先、品目の転記

仕訳帳Sheetの各仕訳の貸借ごとに「勘定科目コード」を変数に代入して、その勘定科目コードを勘定科目情報Sheetで検索し、一致する勘定科目、取引先、品目を転送データSheetに転記するというプログラムになります。

前々回(準備その③)で記載したとおり前期以前に使用していた会計ソフトの勘定科目体系とfreeeの体系に違いがあるため、「マッチング」という分類項目を設定し各マッチングごとに転記する項目を変える必要がありましたので、プログラムが長くなってしまいました。

途中、一致する勘定科目がない等の理由によりプログラムを離脱することがありますが、その場合は、勘定科目情報Sheetの記載内容を確認し、情報を整えてから再度プログラムを実行するようになります。

Do~Loopを記述して、その中に6階層のIf~Thenを記述しマッチングの分類に対応するようにしました。

[aside type=”boader”]第1階層・・・もし、最終行だったら(※1)

第2階層・・・もし、勘定科目コードが「0」だったら

第3階層・・・もし、マッチングする勘定科目コードがなかったら

第4階層・・・もし、マッチング分類が「M○」だったら(※2)

第5階層・・・もし、マッチングする勘定科目名称または補助科目名称がなかったら

第6階層・・・もし、マッチングする取引先または品目がなかったら[/aside]

※1 第1階層については、Do~Loopを繰り返す回数の管理のために記述しているため、Do UntilでもOKです。私は、Ifを使って記述することが多いです。

※2 「M○」の○には数字が入ります。

第2階層以降の記述については次のとおりです。借方勘定科目の転記について記載しますが、貸方勘定科目も転記する列番号が異なるだけで同じ構造となります。

① 第2階層・・・もし、勘定科目コードが「0」だったら

freeeマクロ_70

変数のstrGaに勘定科目コードを代入します。勘定科目コードが「0」の場合は、転送データSheetの借方勘定科目のセルは空白とします。「0」以外の場合は、第3階層に進みます。

② 第3階層・・・もし、マッチングする勘定科目がなかったら

freeeマクロ_68

strGaに代入されいる勘定科目コードをFind構文で勘定科目情報Sheet上で検索します。上記の赤い枠囲み部分。

「lookAt:=xlWhole」と記述して完全一致のもの探します。

Object型の変数Ob1を利用して、一致するコードが見つからなかった場合のIfを記述しました。見つからなければ、「Exit Sub」でプログラムの実行から離脱します。

一致する勘定科目コードがあった場合は、一致するコードのある行番号をlonYbに代入し、さらに一致する行番号のマッチング分類をvarMaに代入し第4階層に進みます。上記の緑色の枠囲み部分。

③ 第4階層から第6階層

次にマッチングの分類により、それぞれ勘定科目、取引先、品目を転記します。

全部は記載できないので、2つの種類について以下に記載します。

「M1」の場合

マッチングの分類「M1」は、補助科目がなくマッチングする勘定科目があるという分類です。

freeeマクロ_68

変数strGcに勘定科目情報Sheetで一致する勘定科目コードの勘定科目名称を代入します。勘定科目名称のセルが空白の場合は、プログラムを離脱します。空白以外の場合は、その勘定科目名称を転送データSheetの借方勘定科目に転記します。

「M2」の場合

マッチングの分類「M2」は、補助科目を使用している勘定科目で、補助科目に取引先を転記するという分類です。

freeeマクロ_72

第3階層では勘定科目コードの有無を確認したので、上記の緑色の枠囲み部分で勘定科目(名称)の有無を確認します。

勘定科目情報Sheetのセルが空白の場合は、プログラムを離脱します。勘定科目があれば、転送データSheetの借方勘定科目に転記します。

次に、変数strGbに仕訳帳Sheetの補助科目コードを代入します。勘定科目コードと同じく、勘定科目情報Sheetで一致する補助科目コードを検索しますが、検索範囲は、一致する勘定科目コードの下の行からという指示を記述します。

上記の青い枠囲みの部分。

『After:=w3.cells(lonYb,2)』がその指示です。

一致する補助科目コードが見つからない場合は、プログラムを離脱します。

一致する補助科目コードが見つかった場合は、一致するコードのある行番号をlonYcに代入し、さらにstrGcに取引先を代入します。

取引先がない場合はプログラムを離脱し、ある場合は、転送データSheetの借方補助科目に記載します。

(次回以降へ続く)

■□◆◇ 編集後記 ◇◆□■

借りている事務所の前のマンションが完成予定の高さまで完成したみたいです。もっと前に完成していたのかもしれませんが、秋になり日が差さなくなったので、高さを実感しております。暗い。