ADVERTISEMENT

【Excel】Power QueryでOneDriveのローカルパスが他のPCで使えない時の直し方

【Excel】Power QueryでOneDriveのローカルパスが他のPCで使えない時の直し方
🛡️ 超解決

Power Queryを使ってExcelでデータを加工していると、OneDriveで同期しているファイルを参照するケースがよくあります。しかし、自分のPCでは問題なく動いているクエリが、他のPCで開くと「ファイルが見つからない」というエラーになることがあります。これは、OneDriveのローカルフォルダのパスがPCごとに異なることが原因です。この記事では、OneDriveのローカルパスが原因でPower Queryが使えなくなる問題を、具体的な修正手順とともに解説します。会社の共有ファイルやテンプレートとして使う場合に特に役立つ内容です。

【要点】この記事で確認すること

  • 最初に見る場所: Power Queryのソース設定(クエリエディタの「ソース」ステップ)
  • 切り分けの軸: パスが絶対パスか相対パスか、OneDriveの同期設定(アカウントのフォルダ構造)がPC間で統一されているか
  • 注意点: 会社PCではOneDriveのフォルダ位置を変更する権限がない場合があるため、管理者に確認してから設定変更を行う

ADVERTISEMENT

OneDriveのローカルパスがPCごとに異なる理由

OneDriveはユーザーごとに異なるアカウントで同期されます。そのため、ローカルに保存されるフォルダのパスは通常 C:\Users\ユーザー名\OneDrive のようになり、ユーザー名の部分がPCごとに変わります。さらに、会社でOneDrive for Businessを使っている場合、テナントやライセンスによってフォルダ名が OneDrive - 会社名 となることもあります。この違いがPower Queryのパス指定に影響し、別のPCでクエリを開いたときにファイルが見つからなくなるのです。

また、OneDriveの「ファイルオンデマンド」機能によって実際にファイルがローカルに存在するかどうかも影響します。Power Queryはローカルに同期されていないファイルを参照するとエラーになります。この問題は、パスの解決とは別に発生するケースもあるため、注意が必要です。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

手動でパスを修正する方法

最もシンプルな方法は、クエリ内のソースパスを他のPCに合わせて手動で書き換えることです。ただし、毎回修正するのは非効率なため、一時的な回避策として利用します。

  1. Power Queryエディタを開きます。Excelの「データ」タブから「クエリと接続」をクリックし、該当のクエリを右クリックして「編集」を選択します。
  2. クエリエディタの「適用されるステップ」で、「ソース」ステップをクリックします。数式バーにOneDriveのパスが表示されます。
  3. そのパスを、新しいPCの正しいOneDriveのローカルパスに書き換えます。例えば、C:\Users\olduser\OneDriveC:\Users\newuser\OneDrive に変更します。
  4. 「閉じて読み込む」をクリックし、クエリを更新してエラーが解消されたか確認します。
  5. 手動修正はそのPCだけの対応になるため、元のファイルを共有する前に元のパスに戻すか、後述のパラメーター化を検討してください。

この方法はクエリが少ない場合や一時的な確認に有効ですが、チームでテンプレートを共有する場合は推奨できません。

相対パスとパラメーターを使った汎用的な解決策

相対パスへの置き換え

Power Queryでは、Excelファイル自身のパスを基準にした相対パスを利用できます。例えば、クエリを保存しているExcelファイルがOneDrive内の同じフォルダにあれば、Excel.CurrentWorkbook()Parameter を使って動的にパスを生成できます。

具体的には、以下の方法を試します。

  • Excel.CurrentWorkbook() の利用: クエリを保存しているブックのパスを取得するM関数です。ただし、これだけではOneDriveのルートは取れないため、組み合わせて使います。
  • パラメーターの作成: Power Queryエディタで「パラメーターの管理」から、OneDriveのルートパスを指定するパラメーターを作成します。各PCでこのパラメーターの値を変更するだけで済みます。
  • カスタム関数: フォルダパスを引数で受け取る関数を作り、再利用性を高めます。

パラメーターの設定手順

  1. Power Queryエディタで「ホーム」タブ →「パラメーターの管理」→「新しいパラメーター」をクリックします。
  2. 名前を「OneDriveRoot」、種類を「テキスト」、現在の値に自分のOneDriveのローカルパス(例:C:\Users\username\OneDrive)を入力します。
  3. ソースステップのパスを #"OneDriveRoot" & "\共有フォルダ\ファイル.xlsx" のように書き換えます。
  4. 他のPCでこのクエリを開いたら、パラメーターの値をそのPCのOneDriveパスに変更します。「パラメーターの管理」から編集できます。
  5. このパラメーターをワークシートのセルにリンクすることも可能です(詳細は割愛)。

この方法なら、パラメーターの変更だけでクエリ全体のパスを一括修正できるため、手間が大幅に減ります。

ADVERTISEMENT

SharePoint / Teamsの同期パスを利用する方法

会社でOneDrive for Businessを使っている場合、TeamsやSharePointのドキュメントライブラリを同期すると、ローカルパスは C:\Users\ユーザー名\会社名\サイト名 という構造になります。このパスはPCごとにユーザー名が変わりますが、SharePointの「開く」ボタンから取得できるURL(Webパス)を使うことで、ローカルパスに依存しないデータ取得が可能です。

Power Queryでは、SharePointフォルダーコネクタを使ってWeb上のファイルを直接参照できます。この方法ならローカルパスを意識する必要がありません。

SharePointフォルダーコネクタの使い方

  1. Power Queryエディタで「ホーム」→「新しいソース」→「SharePointフォルダー」を選択します。
  2. SharePointサイトのURLを入力します(例:https://会社名.sharepoint.com/sites/サイト名)。
  3. 認証方法は「組織アカウント」を選び、サインインします。
  4. 表示されたフォルダ一覧から目的のフォルダを選択し、ファイルを指定します。
  5. この方法で作成されたクエリはWebパスを使用するため、ローカル同期の有無やパスの違いに影響されません。

ただし、この方法はインターネット接続が必要で、オフラインでは使えません。また、SharePointの権限設定によってはアクセスできない場合があるため、事前に管理者に確認してください。

管理者設定によるOneDriveマウント位置の統一

企業のIT管理者は、グループポリシーを使ってOneDriveの同期フォルダを固定の場所(例えば C:\OneDrive など)に設定することができます。これにより、全ユーザーのOneDriveパスが統一され、Power Queryのパス問題を根本的に解決できます。

しかし、この設定は管理者権限が必要なため、通常のユーザーが変更することはできません。もし会社全体でこの問題が頻発するなら、IT部門に相談して検討してもらいましょう。

方法 メリット デメリット
手動パス修正 すぐに試せる、特別な設定不要 PCごとに手作業が必要、ミスが起きやすい
パラメーター活用 パラメーター変更だけで済む、汎用性が高い 各PCでパラメーター設定が必要、少し学習が必要
SharePointコネクタ ローカルパスに依存しない、オンラインで常に最新 オフライン不可、権限設定が必要、少し遅い場合がある
管理者によるフォルダ統一 全社的に解決、運用コスト低 管理者工数が必要、変更には時間がかかる

よくある失敗パターンと注意点

Power QueryでOneDriveのローカルパスを扱う際に、よくある失敗をいくつか紹介します。

  • パスの末尾のバックスラッシュ忘れ: パスを結合するときに "C:\Users\user\OneDrive" & "\file.xlsx" のように、バックスラッシュを忘れずに付けてください。忘れると無効なパスになります。
  • ファイルオンデマンドでローカルにないファイル: OneDriveのファイルが「オンラインのみ」の状態だと、Power Queryはファイルを読めません。エラーが発生した場合は、エクスプローラーで対象ファイルを右クリックし「常にこのデバイスに保存する」を選んでください。
  • OneDriveの同期フォルダ名が異なる: 特に会社のOneDrive for Businessでは「OneDrive – Contoso」のようにフォルダ名に会社名が入ります。PCごとにこの名前が微妙に違うケースもあるため、正しいパスを確認してください。
  • 相対パスにしたつもりが絶対パスのまま: Power QueryのM言語では、Excel.CurrentWorkbook() を使っても絶対パスが返ります。相対パスにするには独自の変換が必要です。

よくある質問

Q1. パラメーターを使っても他のPCでエラーが出るのはなぜですか?

パラメーターの値が正しく設定されていない可能性があります。他のPCでパラメーターの値を確認し、OneDriveの実際のパスと一致しているかチェックしてください。また、パラメーター名が異なる場合もエラーになります。

Q2. SharePointフォルダーコネクタでアクセス権限エラーが出ます。

SharePointサイトやファイルに対する読み取り権限が不足している可能性があります。管理者に連絡して、適切な権限を付与してもらってください。また、認証の際に組織アカウント(Microsoft 365)を使用しているか確認してください。

Q3. OneDriveのローカルパスを変更してもいいですか?

会社のPCでは、OneDriveの同期フォルダの場所を変更する設定がグループポリシーで制限されている場合があります。無理に変更すると同期が停止する恐れがあるため、管理者に確認してから行ってください。

まとめ

Power QueryでOneDriveのローカルパスが他のPCで使えない問題は、パスがユーザー依存であることが原因です。一時的には手動修正、より実用的にはパラメーター化やSharePointコネクタの利用、根本的には管理者によるフォルダ統一設定が考えられます。特にチームで共有するテンプレートの場合は、パラメーターまたはSharePoint経由の方法がおすすめです。自社の環境に合わせて最適な対策を選んでください。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT