Excel for Macで[データの取得]を開いても、Windows版にある「フォルダーから(From Folder)」が見当たらず、フォルダー内の複数ブックをまとめて取り込めなくて困っていませんか?この記事では、表示されない主な理由と、macOSの権限付与+Power QueryのFolder.Files()で同等の取り込みを実現する手順を、つまずきポイントまで含めて解説します。
Excel(Mac)で「フォルダーから(From Folder)」が出てこない現象とは
Windows版ExcelのPower Queryでは、[データの取得]に「フォルダーから(From Folder)」があり、フォルダー配下のファイル一覧を取得して結合(Combine)する定番フローが用意されています。一方、Excel for Mac(例:Version 16.99.1 など)では、同じ場所を探しても「From Folder」がメニューに出てこない/表示が限定されるケースがあります。
| 観点 | Windows版(一般的) | Mac版(よくある状況) |
|---|---|---|
| 「フォルダーから」コネクタ | UIに表示され、手順が確立 | UIに出ない/出ても条件付き |
| フォルダー配下の一括取り込み | 「From Folder」→「Combine」で簡単 | 空のクエリ+Folder.Files()で代替 |
| OS側のファイルアクセス | 基本的に権限の壁が少ない | Desktop/Documents等は権限(許可)が絡みやすい |
原因:Mac版Power Queryの機能差と「フォルダー権限」が絡む
結論から言うと、Excel for MacのPower QueryはWindows版に比べて機能(コネクタやUI)が限定されることがあり、結果として「From Folder」がUI上に見えない/使えない場合があります。さらにMacでは、フォルダーの場所によってはOSのプライバシー保護の影響で、アプリ側がフォルダーへアクセスできず、クエリが空になる・エラーになることがあります。
そのため、次の2点を押さえるのが近道です。
- macOS側でExcelにフォルダーアクセス権を付与して、Power Queryが中身を読める状態にする
- UIの代わりに空のクエリ(Blank Query)で
Folder.Files()を使い、フォルダー一覧を取得して結合する
解決策の全体像(最短ルート)
この記事で扱う回避策は、次の流れです。
| ステップ | やること | 狙い |
|---|---|---|
| 手順1 | VBA(Immediate Window)でDir()を実行 | macOSの許可ダイアログを出し、Excelにフォルダー権限を渡す |
| 手順2 | Power Queryの空のクエリでFolder.Files("…") | フォルダー配下のファイル一覧を取得し、結合(Combine)へつなぐ |
「From Folder」が見えない状態でも、上記を通せばフォルダー内の複数ブック取り込み(実質From Folder相当)を実現できます。
手順1:VBA(Immediate Window)でフォルダーアクセス権を付与する
Macでハマりやすいのが「Power Queryの式は合っているのに、フォルダーが見えない」パターンです。これはExcelがそのフォルダーを読んでよい、という許可がOS側で通っていないことが原因になりがちです。
準備:開発タブを表示してVBEを開く
- Excelのリボンで[開発(Developer)タブ]を有効化
- Visual Basic Editor(VBE)を開く
- Immediate Window(イミディエイト ウィンドウ)を表示(見当たらない場合はメニューから表示)
Immediate WindowでDir()を実行して許可を出す
以下の例のパスは、あなたの環境の実パスに置き換えてください(末尾のスラッシュ有無は混乱しやすいので、後述の注意点も合わせて確認してください)。
dir("/Users/<ユーザー名>/Desktop/<フォルダー名>/")
実行時にmacOS側のセキュリティ確認が出たら、許可(Grant Access / OK)します。これでExcelがそのフォルダーにアクセスできる状態に寄せられます。
補足:Dirの結果が表示されなくても焦らない
Dir()は環境や実行の仕方によっては結果が表示されないことがありますが、目的が「権限付与を進める」ことなら、許可ダイアログが出て承認できれば前進している場合があります。
「実際に何か返ってきたか」を確認したいときは、パターン付きで出力すると分かりやすいです。
? Dir("/Users/<ユーザー名>/Desktop/<フォルダー名>/*")
つまずきポイント:パスは“正確な文字列”で取得する
パスの打ち間違いは、権限付与でもPower Queryでも致命的です。Finderで対象フォルダーを選び、「パス名としてコピー」などで正確なパス文字列を取得して貼り付けるのが確実です。
| よくあるミス | 起きる症状 | 回避策 |
|---|---|---|
| フォルダー名のスペースや記号を手打ち | 許可が出ない/別フォルダーを指す | Finderのコピー機能で取得した文字列を使う |
末尾の/を付けたり付けなかったり | 後で「同じ場所なのに見えない」 | 「手順1」と「手順2」で表記を揃える(後述) |
| 別表記のパス(似ているが一致しない) | 権限は付与したのにPower Queryが空 | “完全一致”を意識して、同じ文字列を流用する |
手順2:Power Query(空のクエリ)でフォルダー内ファイルを取得する
「From Folder」がUIに無い場合でも、Power QueryのM言語にはフォルダー配下のファイル一覧を取得する関数があります。それがFolder.Files()です。
空のクエリを作成する
- Excelで[データ]→[データの取得(Get Data / Power Query)]→[空のクエリ(Blank Query)]を選択
- Power Queryエディターを開く
Folder.Files("…")をソースに設定する
以下の例のパスは、手順1で許可したものと完全に同じ表記にしてください(ここが最重要ポイントです)。
let
Source = Folder.Files("/Users/<ユーザー名>/Desktop/<フォルダー名>")
in
Source
これで、フォルダー配下のファイルがテーブルとして取得できます(ファイル名、拡張子、更新日時、バイナリ(Content)など)。
重要:ダブルクォーテーションの位置ミスに注意
Folder.Files()は引数のパス文字列を必ず英数のダブルクォーテーション(")で囲みます。
| 例 | 書き方 | 結果 |
|---|---|---|
| 正しい | Folder.Files("パス文字列") | フォルダー一覧が取得できる |
| よくある誤り | Folder.Files("パス文字列) / Folder.Files(パス文字列) | エラー/空の結果になりやすい |
取得したファイルを「結合(Combine)」して複数ブックをまとめて取り込む
Folder.Files()が返すテーブルには、通常Content列(バイナリ)が含まれます。ここから先は「From Folder」と同じ発想で、Contentを使って各ファイルを読み込み、同じ形に整えて結合します。
まずは不要ファイルを除外して事故を減らす
フォルダー一括取り込みでよく混ざるのが、テンポラリファイルや隠しファイルです。特にExcelが自動生成する~$から始まるファイルが混ざると、結合時にエラーや想定外の挙動につながりやすいです。
| 除外したいもの | 例 | 理由 |
|---|---|---|
| 一時ファイル | ~$xxxx.xlsx | 本体ではないため読み込みに失敗しやすい |
| 隠しファイル | .DS_Store 等 | Excelファイルではなくノイズになる |
| 対象外拡張子 | .pdf / .png 等 | 結合フローを壊す |
Power Query上で、拡張子でフィルター(例:.xlsx、.xlsm、必要なら.xlsb)をかけてから結合すると安定します。
UIで結合できる場合:Content列から結合を実行
環境によって表示は異なりますが、テーブルにCombine(結合)系のボタンが出る場合は、それを使うとExcelが「サンプルファイル」「変換関数」などを自動生成してくれます。結果的に、Windows版の「From Folder → Combine」とほぼ同じ完成形に近づきます。
結合がうまくいかないときの“現場チェック”
フォルダーからの結合で失敗する多くは、各ブックの中身の揺れが原因です(シート名が違う、ヘッダー行がずれている、列が増減しているなど)。以下のチェックを先にしておくと、Power Query側の修正が最小で済みます。
| チェック項目 | よくある症状 | 対策の方向性 |
|---|---|---|
| シート名が統一されているか | 一部ファイルだけ空、またはエラー | シート名を揃える/必要なら条件分岐で拾う |
| ヘッダー行の位置が同じか | 列名がズレる、値が列名扱いされる | 「先頭行をヘッダーとして使用」を統一 |
| 列の追加・削除が混在していないか | 展開時に列が見つからない | 必須列だけ選択して結合/欠損列はnullで補う |
| ファイルが開きっぱなしでロックしていないか | 読み込み失敗、更新が止まる | 対象フォルダーのブックを閉じてから更新 |
この方法で「From Folder相当」を再現できる理由(仕組みをざっくり理解)
Windows版の「From Folder」も、内部ではフォルダー配下のファイル一覧(=テーブル)を作り、そのContent(バイナリ)を各ファイル読み込み関数に渡して結合しています。
MacでUIが見えない場合でも、Folder.Files()で同じ“入口”を自分で作ってあげれば、あとはPower Queryの標準機能(変換、結合、読み込み)で近いことができます。言い換えると、UIがないだけで、やりたいことの土台は作れるという発想です。
追加の重要ポイント:パスの“完全一致”が効く理由と、ズレを防ぐコツ
今回の解決で特に効くのが、次の2点です。
- 手順1で許可したパスと、手順2で指定するパスを完全一致させる
- ダブルクォーテーション(
")の位置ミスをしない
「同じフォルダーを指しているつもり」でも、表記が少し違うだけで別物扱いになり、Power Query側で見えないことがあります。特にMacはフォルダーアクセスが絡むため、ここがWindowsよりシビアに感じやすいです。
ズレを防ぐ実践テク(おすすめ)
- Finderでパスをコピーして、手順1(Dir)と手順2(Folder.Files)に同じ文字列を貼る
- パスの末尾の
/を統一する(付けるなら付ける、付けないなら付けない) - フォルダー名を途中でリネームしない(クエリ更新が壊れやすい)
運用をラクにする:フォルダーパスを“パラメータ化”して再利用する
毎回Mコードを編集するのは地味にストレスです。更新・再利用を考えるなら、フォルダーパスを「変更しやすい場所」に置いておくと便利です。
例:シートのセル(名前付き範囲)にパスを入れて参照する
Excelシートにフォルダーパスを入力し、そのセル範囲に名前(例:folder_path)を付けておくと、Power Query側はその値を読み取って動くようにできます。
let
// Excel内の名前付き範囲 folder_path の1行目を読み取る例
FolderPathTable = Excel.CurrentWorkbook(){[Name="folder_path"]}[Content],
FolderPath = FolderPathTable{0}[Column1],
Source = Folder.Files(FolderPath)
in
Source
これなら、フォルダーが変わったときはセルを書き換えるだけで済みます(チーム共有やフォルダー移動が発生しやすい運用で特に効きます)。
よくある質問(Mac特有の詰まりどころ)
VBAを使いたくない場合、権限付与はどうする?
VBAが使いづらい環境では、Excelから対象フォルダー内のファイルを一度「開く/インポートする」操作を行い、許可ダイアログが出たタイミングで承認しておくと、その後のPower Queryで見えるようになる場合があります。ポイントは「Excelがその場所へアクセスするきっかけ」を作ることです。
Folder.Files()を実行しても空テーブルになる
多くの場合、次のどれかです。
- パスの表記が、手順1で許可したものと一致していない
- 対象フォルダーがDesktop/Documents等で、許可が通っていない
- ダブルクォーテーションや括弧が崩れている(コピペ時に起きやすい)
フォルダー内のExcelがバラバラで結合エラーが出る
Power Queryの結合は「同じ型・同じ構造」に寄せるほど安定します。まずは次の順で整えると、直す場所が減ります。
- シート名・テーブル名を揃える
- ヘッダー行を揃える(列名・列順の統一)
- 不要列を消し、必須列だけ残す(揺れを減らす)
まとめ:UIに「From Folder」がなくても、Macで“フォルダー結合”はできる
Excel for Macでは、Windows版と同じように「フォルダーから(From Folder)」が見えない/使えないことがあります。しかし、
- VBAの
Dir()でフォルダー権限を付与し、 - 空のクエリで
Folder.Files()を使う
この2ステップを押さえれば、UIがなくてもフォルダー配下の複数ファイルを取り込み、Power Queryで結合する運用が可能です。
特に重要なのは、許可したパスと指定するパスの完全一致と、ダブルクォーテーションのミスを避けることです。ここさえ守れば、Macでも「毎月増えるファイルを放り込んで更新するだけ」の仕組みを作れます。

コメント