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

