Power QueryとVBAの違い ― パワークエリで代替できる作業・できない作業

📚 パワークエリシリーズ

  • ① Power QueryとVBAの違い(このページ)
  • ① 補足編 ― データモデル・パラメータクエリ・SharePoint連携・知られていない理由
  • ② 基本編 ― 取得→変換→読込の3ステップ
  • ③ 応用編 ― 結合・追加・ピボット解除・フォルダ一括取込
  • ④ M言語入門 ― GUIの限界を超えるカスタム処理

💡 この記事で解決すること

「パワークエリって結局なに?」「VBAや関数とどう違うの?」「覚える価値あるの?」―― この記事では、パワークエリの正体をVBA・ワークシート関数と徹底比較しながら、メリット・デメリットの両面を解説します。 まずこの1ページで全体像を把握し、データモデルやパラメータクエリなどの深掘りは補足編で紹介しています。

VBAが使えない、マクロが禁止されている会社のExcel環境で、Power Queryを代替手段として使える場面と、VBAに任せるべき場面も整理します。

そもそもパワークエリ(Power Query)とは?

パワークエリは、Excelに標準搭載されている「データの取得・変換・読込」専用エンジンです。 「データ」タブの「データの取得」ボタンから起動し、専用の「Power Queryエディター」でデータ加工を行います。 加工手順は「クエリ」として自動記録され、元データが変わっても「更新」ボタン1つで同じ処理が再実行されます。 マクロ(VBA)のようにコードを書く必要はなく、ほぼマウス操作だけで完結します。

STEP 1取得CSV / Excel / PDF
Web / フォルダ一括 etc.
STEP 2変換列削除・型変換・結合
フィルタ・ピボット解除 etc.
STEP 3読込テーブルとして
ワークシートに出力
以降更新するだけ元データが変わっても
ワンクリックで再処理
💡 この「取得 → 変換 → 読込」は、英語で ETL(Extract / Transform / Load) と呼ばれるデータ処理の王道パターンそのものです。

VBA・ワークシート関数・パワークエリ ― 何がどう違うのか?

パワークエリはVBAの完全な代替でも関数の上位互換でもなく、「データを整形して表にする」ことに特化したツールです。 3つは競合ではなく補完の関係にあります。

比較項目パワークエリVBA(マクロ)ワークシート関数
主な目的データの取得・変換・読込Excel操作全般の自動化セル単位の計算・参照
コードの要否基本はGUI操作のみ
(深い処理にはM言語)
VBAコードの記述が必須数式を手入力
学習コスト
(入門→実用)
低い ― マウス操作で7割カバー高い ― 変数・ループ・オブジェクトモデル中 ― 主要30関数で実用レベル
学習コスト
(深い処理)
中〜高 ― M言語の習得が必要
日本語資料が少ない
高い ― だが資料は豊富中 ― ネスト深くなると可読性低下
処理速度
(大量データ)
◎ 専用エンジンがExcelとは別にメモリ上で一括処理
DB接続時はクエリフォールディングでさらに高速
○ 配列格納等で高速化可能だが最適化は自己責任△ 大量行で再計算が重い
メモリ効率◎ 列指向圧縮。シートに展開しなければExcelプロセスを圧迫しない△ Variant配列でメモリ消費大△ セルごとに値保持。大量データでブック肥大化
104万行超◎ データモデル経由で数百万行〜△ テキスト処理等で可能だがシート出力不可× ワークシート行数制限
処理の再現性◎ 手順が自動記録。更新1クリック○ マクロとして記録。保守にVBAスキル必要△ 数式コピーが必要。列追加で壊れるリスク
外部データ接続◎ CSV / Excel / PDF / Web / DB / SharePoint 等
100種類以上のコネクタ
○ コードで可能だが実装が煩雑× 基本的に不可
セキュリティ制限◎ VBA禁止環境でも使用可× 企業ポリシーでブロック多◎ 制限なし
処理の透明性◎ 適用したステップで全工程可視化△ コードを読める人にしか分からない○ 数式バーで確認可
動的な条件変更○ パラメータクエリで可能
セルの値をフィルタ条件・ファイルパスに渡せる。
エディターを開かず「更新」だけで結果を切り替えられる。
ただし「更新」操作が必要(リアルタイムではない)
◎ InputBoxやセル参照で自在◎ セル変更で即再計算
できないことファイル保存・印刷・メール送信
セル装飾・UI操作・リアルタイム再計算
特になし(何でもできる)外部データ取得・ファイル操作
💡 処理速度の核心:パワークエリは「Mashupエンジン」という専用処理系がExcelプロセスとは別にデータを処理します。 VBAのようにExcelのオブジェクトモデルを経由しないため、大量データでは桁違いに速くなります。 SQL Server等のDBに接続している場合は「クエリフォールディング」が発動し、フィルタや集計をDB側のSQLに委譲するため、全件メモリ読み込みなしで処理できます。

用途別:どのツールを使うべき?

やりたいことPQVBA関数
毎月届くCSVを決まった形に整形して取込×
フォルダ内の複数ファイルを1シートに統合×
PDFの表をExcelに取り込む×
2つの表をキーで突合(VLOOKUP的結合)
クロス集計表を縦持ちデータに変換
同一ブック内で条件抽出(リアルタイム)
セル内の計算・集計(SUMIFS等)
条件付き書式やセルの色付け自動化×
複数ブックを自動で印刷・PDF保存××
黄金パターン:パワークエリで外部から取り込んで整形 → 関数やピボットで集計・分析 → 必要ならVBAで出力自動化。

パワークエリの真骨頂 ― フォルダ一括取得

VBAや関数では到底太刀打ちできない最強の実用機能が「フォルダから取得」です。 指定したフォルダの中にあるExcelブック・CSVファイルをすべて自動で読み込み、1つのテーブルに結合します。

「売上_202601.xlsx」「売上_202602.xlsx」…と毎月届くファイルをフォルダに入れておくだけで、全ファイルの中身を自動結合。 翌月ファイルが追加されたら、フォルダに放り込んで「更新」を押すだけです。

結合後のテーブルには「Source.Name」列が自動追加され、どのファイル由来か判別可能。 ファイル形式・ヘッダー名・列数を統一しておくことが前提です。

⚠️ VBAで同じことをやるにはDir関数+Workbooks.Openのループを数十〜百行以上書く必要があります。パワークエリならGUI操作だけで完結します。

PDFの表を直接取り込む ― VBA禁止環境での唯一無二の機能

これはVBA禁止環境では特に重要な機能です。

従来、制限環境でPDFのデータをExcelに取り込む方法は極めて限られていました。 WordでPDFを開いて表をコピーする方法はありましたが、レイアウトが崩れやすく、 直接Excelにコピーペーストするとデータが縦に一列に並んだり、セル結合が壊れたりと、まともに使える状態にするまでに大変な手間がかかりました。 「どうしてもPDFしかデータがない」ケースは実務で確実に存在するにもかかわらず、制限環境では事実上お手上げだったのです。

パワークエリのPDF取り込み機能(Excel 2019以降/365)は、この問題を根本から解決します。 「データの取得」→「ファイルから」→「PDFから」で、PDF内の表データを行・列が正しく認識された状態で直接Excelに読み込めます。 Adobe Acrobat Proのような有料ソフトも不要。VBAも不要。Excel単体で完結します。

読めるPDFと読めないPDFの違い

パワークエリが読み込めるのは「テキスト情報が埋め込まれたPDF」のみです。 WordやExcel、業務システムからエクスポートされたPDFで、PDF上の文字をマウスでドラッグしてコピーできるタイプです。

紙の書類をスキャナーで読み取った「画像PDF」は読み込めません。 文字を選択しようとしても1枚の画像として全体が選択されるタイプです。 画像PDFを読みたい場合はOCRソフトでテキストPDFに変換する前処理が必要です。

読み込み精度と注意点

シンプルな罫線付きの表であれば高い精度で行・列が認識されます。 ただし複雑な結合セルや複数行ヘッダーの表はうまく分割できないことがあり、エディター上での調整が必要です。 ヘッダー行の自動認識がされないケースも多いため、「1行目をヘッダーとして使用」の操作が必要になることがほとんどです。

フォルダ一括取得と組み合わせれば、複数PDFの一括取り込みも可能です。 毎月届く請求PDFをフォルダにまとめておけば、全件を一気にExcelテーブルに変換できます。

VBA禁止・有料ソフト禁止の制限環境でPDFの表をExcelに取り込める唯一の標準機能です。 一度クエリを作れば、同じレイアウトのPDFが届くたびにファイルパスを差し替えて更新するだけで再利用できます。

📝 FILTER関数・XLOOKUPの登場で出番は減ったのか?

FILTER関数やXLOOKUP関数は、条件抽出の一部をワークシート上で完結させます。 「同じブック内の条件抽出」なら関数だけで十分なケースが増えました。

しかし決定的な違いは「参照」vs「値として取得」です。 FILTER/XLOOKUPは「参照」であり元データが消えれば結果も消えます。スピル展開先にデータを置けない制約もあります。 一方パワークエリの出力は「値」です。外部ファイルから取り込んだデータを確定した値としてブック内に保持できます。

パワークエリで外部から整形して取り込み → 関数で参照・集計という組み合わせが最も実用的です。

パワークエリを覚えるメリット 5選

✅ 1. コード不要 ― GUI操作で入門レベルの7割をカバー

列削除・型変換・フィルタ・並べ替え・結合…すべてがマウス操作だけ。VBAのようなプログラミング知識は不要です。

✅ 2. 再現性 ― 「更新」1クリックで繰り返し実行

手順がステップとして自動保存。来月同じCSVが届いても更新を押すだけです。

✅ 3. 透明性 ― 全工程が可視化される

「適用したステップ」で各工程のプレビューも確認可能。引き継ぎにも強いです。

✅ 4. VBA・マクロ禁止環境でも使える

パワークエリはマクロではないためセキュリティポリシーの影響を受けにくく、会社でVBAが使えないExcel環境でも検討しやすい代替手段です。

✅ 5. 専用エンジンで大量データも高速・省メモリ

Mashupエンジンがシートとは別にデータを処理。データモデルの列指向圧縮で104万行の壁も突破可能です。

パワークエリのデメリット・注意点 4選

⚠️ 1. 深い処理にはM言語の習得が不可避

GUI操作だけでは複雑な条件分岐・動的処理に対応できません。M言語はExcel関数ともVBAとも異なる関数型言語で、日本語の学習資料が少ないのが現状です。

⚠️ 2. リアルタイム性がない

関数はセル変更で即再計算されますが、パワークエリは「更新」操作が必要です。

⚠️ 3. 出力がテーブル形式に限定

自由な書式のレイアウトシートに直接出力はできません。

⚠️ 4. Mac版・Web版は機能制限あり

フル機能はWindowsデスクトップ版のみです。

「簡単に始められる」と「深い処理には学習が必要」の二面性

パワークエリは入門が簡単ですが、深く使いこなすにはM言語の習得が避けて通れません。この二面性を理解して学習計画を立てることが重要です。

レベルできること必要な知識目安
入門
(GUIのみ)
列削除・型変換・フィルタ・並べ替え・CSV取得・フォルダ一括取込・PDF取込マウス操作のみ数時間〜数日
初級
(GUI応用)
マージ(VLOOKUP的結合)・追加(UNION的統合)・ピボット解除・グループ化・条件列各メニューの理解1〜2週間
中級
(M言語入門)
カスタム列での複雑な条件分岐・パラメータクエリ・Excel.CurrentWorkbook()による動的制御M言語の基本構文
(let...in / if...then...else)
2〜4週間
上級
(M言語本格)
カスタム関数・Web APIのJSON解析・動的列生成・List/Record/Table型操作関数型プログラミング概念
公式リファレンス読解力
1〜3ヶ月
⚠️ よくある落とし穴:入門の「簡単さ」だけで判断して使い始め、中級の壁(M言語)にぶつかって「この程度のツール」と諦める人が多くいます。 逆にM言語を少しでも書けるようになると活用幅が一気に広がります

対応バージョン一覧

Excelバージョン対応備考
Microsoft 365(Win)◎ フル対応常に最新機能。推奨環境
Excel 2024(Win)○ 対応リリース時点の機能で固定。2021とほぼ同等
Excel 2021(Win)○ 対応リリース時点の機能で固定
Excel 2019(Win)○ 対応PDF取込対応。一部コネクタ非対応の場合あり
Excel 2016(Win)△ 機能制限「データの取得と変換」として搭載。PDF取込非対応
Mac版△ 制限付き更新・編集可。新規作成に制限
Web版(Excel for the web)○ 対応2026年1月にGA。インポート・変換・エディター利用可(ビジネス/エンタープライズプラン)

📝 こんな人はパワークエリを学ぶべき

「毎月同じCSV/Excelを開いて同じ整形作業をしている」 ― 更新1回で完了。
「複数ファイルを手作業で1シートにまとめている」 ― フォルダ一括取込で自動化。
「PDFの表を毎回手入力でExcelに転記している」 ― PDF取込で解決。
「会社でVBAやマクロが禁止されていて自動化をあきらめている」 ― パワークエリはマクロではないので使える。
「引き継ぎで渡されたVBAマクロが読めない」 ― パワークエリのステップは日本語で全工程が見える。
「FILTER関数では外部ファイルから値として取れない」 ― パワークエリは確定値で読み込める。

まとめ

パワークエリは、「データ整形」という特定の領域で圧倒的に効率化する専用ツールです。 専用エンジンによる高速・省メモリ処理、VBA・マクロ禁止環境での代替手段、PDFやフォルダの一括取込―― これらはVBAにも関数にもない固有の強みです。

一方で深い処理にはM言語が必要であり、リアルタイム性では関数に、UI操作の自動化ではVBAに劣ります。 Power Query(パワークエリ)で取り込んで整形 → 関数で参照・集計という組み合わせが、VBAが使えないExcel環境での現実的な使い分けです。

次のページ パワークエリとは【補足編】― データモデル・パラメータクエリ・クラウド連携・知られていない理由 読み込み先の選択肢(接続のみ/データモデル)、セルの値で動的にクエリを制御するパラメータクエリ、 SharePoint・Googleスプレッドシート連携、パワークエリが知られていない構造的理由、資料が少ない中での学び方まで深掘りします。

📚 パワークエリシリーズ

  • ① Power QueryとVBAの違い(このページ)
  • ① 補足編 ― データモデル・パラメータクエリ・クラウド連携・知られていない理由
  • ② 基本編 ― 取得→変換→読込の3ステップ
  • ③ 応用編 ― 結合・追加・ピボット解除・フォルダ一括取込
  • ④ M言語入門 ― GUIの限界を超えるカスタム処理