前回、マネーフォワードの債務支払サービスを利用している場合に、銀行などから支払いをした際の仕訳(支払時の仕訳)を作成する方法を記事にしましたが、今回はExcelマクロを使って同じ作業をする場合にはどうするか考えてみたので記事にしておきます。
前回の記事はこちらからどうぞ↓
マネーフォワード債務支払で作成した発生時の仕訳をベースにして総合振込などの支払時の仕訳を作成するExcelマクロ
マネーフォワード債務支払というサービスを使うと、マネーフォワード会計(MF)に「発生時」の仕訳を連動することができます。
この発生時の仕訳をMFからExcelにエクスポートして、日付や勘定科目を変更して支払時の仕訳を作成し、再度MFにインポートすることで「支払時」の仕訳を作成していきます。
おおまかな流れはこんな感じです。
前回の記事ではその作業を「手作業」でやる場合の方法を紹介したのですが、毎回毎回手作業でポチポチやるのは面倒くさいのでマクロを作ってみました。
今回のマクロは2つのシートを使っています。
一つはMFからエクスポートしたデータをそのまま貼り付けるシート(元データシート)↓
このシートで支払をした時の仕訳(支払時仕訳)を作る元になる発生時の仕訳を絞り込みます。
絞り込みの方法についてはV列でおこないます。詳しくは前回の記事を参考にしてもらえればと思います。
このシートで加工したい仕訳の絞り込みを行ったらその仕訳をコピーして2つめのシート(データ加工シート)に貼り付けます↓
このシートで支払時の日付や勘定科目や補助科目の設定をしてマクロを実行して支払時の仕訳を作成します。
作成した仕訳についてはCSV保存してMFへ取り込みます。
マクロのコードはこんな感じです↓
Sub data_create()
Dim ws_data As Worksheet
Dim lastrow As Long
Dim i As Long
Set ws_data = Worksheets("データ加工")
lastrow = ws_data.Cells(Rows.Count, 2).End(xlUp).Row
With ws_data
'貸方勘定科目を借方勘定科目へ転記
.Range(.Range("k6"), .Range("o" & lastrow)).Copy .Range("c6")
For i = 6 To lastrow
'取引日の変更(振込日付にする)
.Range("b" & i).Value = .Range("b3").Value
'取引NOの変更(1から付番)
.Range("a" & i).Value = .Range("a" & i).Row - 5
'貸方勘定科目の変更
.Range("k" & i).Value = .Range("d3").Value
'貸方補助科目の変更
.Range("l" & i).Value = .Range("e3").Value
'借方税金額の変更
.Range("j" & i).Value = 0
Next i
End With
MsgBox "仕訳の加工が完了しました" & vbCrLf & "CSV保存ボタンを押してデータを保存してください", vbInformation
End Sub
実際にマクロを実行するとこんな感じになります。
こんな感じで、支払時の仕訳に変換したい発生時の仕訳をこのシートに貼り付けて、日付や科目の情報をセルに入力し、マクロ実行ボタンを押すと誰でも支払時の仕訳を作成することができるようになります。
マクロを実行するための前準備(セルへの必要事項の入力)
マクロを実行する前にデータ加工に必要な「3つの情報をセルに入力」していく必要があります。
まずB3セルには振込日付(実際に銀行から支払いをする日)を入力します。
例えば6月末締め、7月15日支払いの場合にはこのセルには「7月15日」を入力します。
次に、D3セルに貸方勘定科目を、E3セルに貸方補助科目を入力します。
ここには実際にMFで総合振込などをする場合に使用している勘定科目や補助科目を入力します。
例えば「複合」や「諸口」といった勘定科目を使用して総合振込などの仕訳を作成している場合にはここには「複合」や「諸口」を入力します。
複合などの勘定科目を使わずに普通預金などの勘定科目で総合振込をした際の仕訳を作成している場合にはこの部分には「普通預金」として入力します。
E3セルの貸方補助科目に関しても同じ考え方で勘定科目を設定します。
もし補助科目がない場合には空欄でOKです。
Excelマクロの内容をざっくり説明(For~Next、最終行の取得)
説明というほどのものではないのですが、少しだけ今回のマクロの内容に触れておきます。
今回のマクロではFor~Nextステートメントを使って繰り返しの処理をおこなっています。
繰り返し処理をする部分についてはExcelの6行目以降から最後のデータ行まで行う必要があります。
データの最後の行が何行目になるかはその時その時で変わることが想定されます。(7月15日の支払い件数は10件だったけど、8月15日の支払い件数は20件だった。みたいな感じで)
この問題に対処するために貼り付けたデータの最終行を変数「lastrow」で取得させることで、6行目から「何行目まで」繰り返しの処理をさせるかを確定させています。
この部分です↓
最終データが何行目にあるのかを変数に取得させる鉄板のやりかたですので難しくはないかと思います。
変数「lastrow」にデータの最終行が何行目かを取得させることができれば、あとは6行目から変数「lastrow」に取得させたデータの最終行まで
- B列に記載された取引日のデータをB3セルに入力された「支払時」の日付に変更
- A列に記載された取引NOを1、2、3のように連番に変更
- 貸方勘定科目をD3セルに入力された勘定科目に変更
- 貸方補助科目をE3セルに入力された補助科目に変更
- 貸方の消費税金額を0円に変更
といった処理を繰り返します。
まとめ
マネーフォワード債務支払で作成した「発生時」の仕訳をベースにして総合振込などの「支払時」の仕訳を作成するExcelマクロを記事にしました。
前回紹介した手作業で仕訳を作成してもよいですし、ぽちぽち手作業で毎回作業するのが面倒くさいという場合には今回のようにマクロで自動化してみるとよいかもしれません。
【本日の近況報告】
たこ焼き器の「炎たこ」でたこ焼きパーティを実施。
このたこ焼き器、ガスコンロの上に鉄板をセットしてたこ焼きをつくることができるもので素人でもカリッとたこ焼きを作ることができる優れものです。
自分が使っているものは結婚祝いとして尊敬する上司からいただきいたものですが、現在は「炎たこⅡ」という新型が発売されているようです。
【本日の1曲】
yonige/リボルバー (age from gato Remix)
大阪の寝屋川のバンド、yonigeのリミックスアルバムからの1曲。
オリジナルの曲もいい曲でPVもいい感じなんですが、そんなオリジナルの雰囲気を残したまま完全打ち込み、クラブ仕様にremixされております。
大きな音で聴きたいと思わせるそんな1曲。中毒性があるナイスremix。