YPO Industry
ChatGPTに青色申告用の複式帳簿を作ってみる④
 ChatGPTに青色申告用の複式帳簿を作ってみる④

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
    

副業で手取りを増やしたい人おすすめ!


次回の予定

今回は、仕訳帳のデータ入力を簡単にするマクロを作成しました。次回は、入力ミスを減らすための補助機能を考えていきます!