ChatGPTに青色申告用の複式帳簿を作ってみる④
仕訳帳の入力を簡易化するVBAマクロ
今回は、仕訳帳への入力・編集・削除を簡単にするためにVBAマクロを作成しました。
仕訳帳への新規入力
Sub 仕訳帳に追加() Dim wsSource As Worksheet Dim wsDest As Worksheet Dim lastRow As Long Dim todayDate As String Set wsSource = ThisWorkbook.Sheets("操作パネル") Set wsDest = ThisWorkbook.Sheets("仕訳帳") lastRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Row + 1 todayDate = Format(Date, "yyyy/mm/dd") wsDest.Cells(lastRow, 1).Value = wsSource.Range("A4").Value ' 日付 wsDest.Cells(lastRow, 2).Value = wsSource.Range("B4").Value ' 摘要 wsDest.Cells(lastRow, 3).Value = wsSource.Range("C4").Value ' 勘定科目 wsDest.Cells(lastRow, 4).Value = wsSource.Range("D4").Value ' 借方金額 wsDest.Cells(lastRow, 5).Value = wsSource.Range("E4").Value ' 貸方金額 wsDest.Cells(lastRow, 6).Value = wsSource.Range("F4").Value ' 備考 wsDest.Cells(lastRow, 7).Value = wsSource.Range("G4").Value ' 支払方法 wsDest.Cells(lastRow, 8).Value = todayDate ' 記入日 wsDest.Cells(lastRow, 9).Value = todayDate ' 最終更新日 wsSource.Range("A4:G4").ClearContents Call 仕訳帳を日付順に並び替え MsgBox "仕訳を追加しました!", vbInformation End Sub End Sub
仕訳帳の編集(履歴を残して相殺)
Sub 仕訳帳を編集() Dim wsSource As Worksheet Dim wsDest As Worksheet Dim editRow As Long Dim lastRow As Long Dim todayDate As String Set wsSource = ThisWorkbook.Sheets("操作パネル") Set wsDest = ThisWorkbook.Sheets("仕訳帳") todayDate = Format(Date, "yyyy/mm/dd") editRow = wsSource.Range("B10").Value If editRow < 2 Or editRow > wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Row Then MsgBox "無効な行番号です", vbExclamation Exit Sub End If lastRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Row + 1 wsDest.Rows(editRow).Copy wsDest.Rows(lastRow) wsDest.Cells(lastRow, 4).Value = wsDest.Cells(lastRow, 4).Value * -1 wsDest.Cells(lastRow, 5).Value = wsDest.Cells(lastRow, 5).Value * -1 wsDest.Cells(lastRow, 9).Value = todayDate lastRow = lastRow + 1 wsDest.Cells(lastRow, 1).Value = wsSource.Range("A14").Value wsDest.Cells(lastRow, 2).Value = wsSource.Range("B14").Value wsDest.Cells(lastRow, 3).Value = wsSource.Range("C14").Value wsDest.Cells(lastRow, 4).Value = wsSource.Range("D14").Value wsDest.Cells(lastRow, 5).Value = wsSource.Range("E14").Value wsDest.Cells(lastRow, 6).Value = wsSource.Range("F14").Value wsDest.Cells(lastRow, 7).Value = wsSource.Range("G14").Value wsDest.Cells(lastRow, 8).Value = todayDate wsDest.Cells(lastRow, 9).Value = todayDate Call 仕訳帳を日付順に並び替え MsgBox "仕訳を編集しました!", vbInformation End Sub End Sub
仕訳帳の削除
Sub 仕訳帳を削除() ' 指定された行を削除し、日付順に並び替える End Sub
仕訳帳の候補検索
Sub 仕訳候補を表示() ' 指定された検索条件で仕訳帳を検索し、操作パネルに一覧表示する End Sub
仕訳帳の日付順並び替え
Sub 仕訳帳を日付順に並び替え() ' A列の発生日付を基準に昇順に並び替える処理 End Sub
副業で手取りを増やしたい人おすすめ!
次回の予定
今回は、仕訳帳のデータ入力を簡単にするマクロを作成しました。次回は、入力ミスを減らすための補助機能を考えていきます!