VBAで勘定科目変換ツールを作ろう! -チャットGPT4-に質問

-チャットGPT4-

-チャットGPT4-に質問

 VBAで勘定科目変換ツールを作成したいと思います。このファイルに勘定科目変換シートがあります。A列に変換前の勘定科目、B列に変換後の勘定科目があります。これをダイアログボックスで選択したファイルのBank Statement(編集用)シートのC列と勘定科目変換シートのA列の文字が一致したらB列に変更するVBAを書いてください。

-チャットGPT4-の回答

Option Explicit

Sub AccountConversionTool()
    Dim OpenFileName As Variant
    Dim SourceWorkbook As Workbook

  Dim wsBankStatement As Worksheet
    Dim wsAccountConversion As Worksheet
    Dim LastRowBankStatement As Long
    Dim LastRowAccountConversion As Long
    Dim i As Long, j As Long

    ' ダイアログボックスでファイルを選択
    OpenFileName = Application.GetOpenFilename _
        (Title:="選択したファイルを開く", _
        FileFilter:="Excel Files *.xls* (*.xls*),")

    ' キャンセルが選択された場合、終了
    If OpenFileName = False Then
        MsgBox "ファイルが選択されませんでした。", vbExclamation, "エラー"
        Exit Sub
    End If

    ' 選択されたファイルを開く
    Set SourceWorkbook = Workbooks.Open(OpenFileName)

    ' シートを設定

  Set wsBankStatement = SourceWorkbook.Worksheets("Bank Statement(編集用)")
    Set wsAccountConversion = ThisWorkbook.Worksheets("勘定科目変換")

    ' 最終行を取得
    LastRowBankStatement = wsBankStatement.Cells(wsBankStatement.Rows.Count, "C").End(xlUp).Row
    LastRowAccountConversion = wsAccountConversion.Cells(wsAccountConversion.Rows.Count, "A").End(xlUp).Row

    ' 勘定科目の変換
    For i = 2 To LastRowBankStatement
        For j = 2 To LastRowAccountConversion
            If wsBankStatement.Cells(i, "C").Value = wsAccountConversion.Cells(j, "A").Value Then
                wsBankStatement.Cells(i, "C").Value = wsAccountConversion.Cells(j, "B").Value
                Exit For
            End If
        Next j
    Next i

    ' 完了メッセージを表示
    MsgBox "Bank Statement(編集用)シートの勘定科目が更新されました。", vbInformation, "完了"


End Sub
タイトルとURLをコピーしました