Excel VBAを活用すると、AファイルにBファイルのデータをXLOOKUPで取得して値として保存する作業を自動化できます。初心者でも順序立てて学べば、短時間でこうした処理を作れるようになります。
1. VBAでの基本方針
処理の流れとしては以下のステップです。
- Aファイルの3行目から最終行までを処理対象にする
- 各行の1列目を検索キーとしてBファイルのA列を参照
- 対応するBファイルのC列の値を取得し、見つからない場合は0を代入
- 結果はAファイルの最右空白セルに値として転記
2. サンプルVBAコード
以下は基本的なXLOOKUPをVBAで実行する例です。
Sub PullDataFromB() Dim wsA As Worksheet Dim wsB As Worksheet Dim lastRowA As Long Dim lastColA As Long Dim i As Long Dim lookupVal As Variant Dim result As Variant ' Aファイルのシート設定 Set wsA = ThisWorkbook.Sheets(1) ' Bファイルを開いてシートを設定(ファイルパスは適宜変更) Set wsB = Workbooks.Open("C:\Path\To\BFile.xlsx").Sheets(1) ' Aファイルの最終行を取得 lastRowA = wsA.Cells(wsA.Rows.Count, 1).End(xlUp).Row ' 3行目の最右空白セルを取得 lastColA = wsA.Cells(3, wsA.Columns.Count).End(xlToLeft).Column + 1 ' 各行をループ For i = 3 To lastRowA lookupVal = wsA.Cells(i, 1).Value On Error Resume Next result = Application.WorksheetFunction.XLookup(lookupVal, wsB.Range("A:A"), wsB.Range("C:C"), 0) On Error GoTo 0 wsA.Cells(i, lastColA).Value = result Next i ' Bファイルを閉じる wsB.Parent.Close SaveChanges:=FalseEnd Sub
3. 効率よく作れるようになるコツ
- VBAで行や列の最終セルを取得する方法に慣れる
- XLOOKUP関数をVBAで扱うパターンを複数練習する
- エラー処理や値の転記を習得し、汎用的に応用できるようにする
- 小さいサンプルファイルで試しながら作業手順を理解する
4. まとめ
このようなVBAスクリプトを理解・練習することで、BファイルのデータをAファイルに自動で転記し、見つからない場合は0を代入する処理が簡単に作れるようになります。習得のポイントは基本ステップを分解して順に理解し、サンプルコードを繰り返し試すことです。


コメント