-チャット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