📊つかえる関数.com

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 2016Excel 2019Excel 2021Microsoft 365
VBA でデータ加工
Power Query--

キーワード

VBAPower Queryデータ加工自動化2016