VBA でデータ加工→Power Query
Excel 2016以降VBA を使わずにデータ加工を自動化。GUI で操作でき、保守性が向上
💡
結論: Power Query への移行をおすすめします
VBA を使わずにデータ加工を自動化。GUI で操作でき、保守性が向上
書き換え前後の比較
✕Before: VBA でデータ加工
-- VBA でデータ加工(例: CSV読み込み→不要列削除→重複削除)
Sub データ加工()
Workbooks.Open "C:\data.csv"
Columns("C:C").Delete
Columns("E:E").Delete
Range("A1").CurrentRegion.RemoveDuplicates Columns:=1
End Sub
-- 問題点:
-- ・VBA のコードが必要
-- ・他の人が理解しにくい
-- ・マクロ有効ブック(.xlsm)が必要✓After: Power Query
-- Power Query で同じ処理を GUI で定義 -- 1. データタブ → データの取得 → ファイルから → CSV -- 2. 不要列を右クリック → 削除 -- 3. ホームタブ → 重複の削除 -- 4. 閉じて読み込む -- 改善点: -- ・VBA 不要で GUI で操作できる -- ・手順が可視化される -- ・.xlsx 形式で保存できる
✓ Power Query のメリット
✓
GUI でデータ加工の手順を定義できる(VBA のコード不要)
✓
M言語は自動生成されるため、コード不要で自動化できる
✓
データソースの変更に強い(接続先を変更するだけ)
✓
手順が可視化され、他の人が理解しやすい
✓
マクロ有効ブック(.xlsm)が不要
⚠️ 注意点
⚠️
Excel 2013以前では使用不可(アドイン版は Excel 2010/2013 で利用可能)
⚠️
複雑なロジックは M言語を直接編集する必要がある場合がある
⚠️
VBA でしかできない処理(API呼び出し、外部アプリ操作)もある
バージョン対応状況
| 関数 | Excel 2016 | Excel 2019 | Excel 2021 | Microsoft 365 |
|---|---|---|---|---|
| VBA でデータ加工 | ✓ | ✓ | ✓ | ✓ |
| Power Query | ✓ | - | - | ✓ |
キーワード
VBAPower Queryデータ加工自動化2016