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
副業で手取りを増やしたい人おすすめ!
次回の予定
今回は、仕訳帳のデータ入力を簡単にするマクロを作成しました。次回は、入力ミスを減らすための補助機能を考えていきます!
コメントを投稿する
コメント一覧
まだコメントはありません。