ADVERTISEMENT

【Excel】Power Queryで共有前に個人パスを消す確認手順

【Excel】Power Queryで共有前に個人パスを消す確認手順
🛡️ 超解決

Power Queryで作成したクエリを同僚やチームと共有する際、ローカルフォルダのパスや自分だけの接続情報が残っていると、セキュリティ上の問題や意図しない動作を引き起こす原因になります。特に、他のメンバーが異なるフォルダ構成やアクセス権限を持っている場合、そのまま配布するとクエリが失敗するでしょう。本記事では、共有前に確実に個人パスを削除または汎用的な形にするための確認手順を、具体例とともに解説します。

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

  • 最初に見る場所: Power Queryエディタの「詳細エディタ」でソースの参照パスを確認する。
  • 切り分けの軸: パスがローカルドライブかネットワーク共有か、パラメーター化されているかどうか。
  • 注意点: 会社PCでクエリのプライバシーレベルや資格情報をむやみに変更すると、他の業務に影響が出る可能性があるため、管理者の承認を得てから作業してください。

ADVERTISEMENT

1. Power Queryで個人パスが含まれるケース

Power Queryでは、外部データソースの場所を指定する際に絶対パスや資格情報がクエリ内に埋め込まれることがよくあります。例えば、次のようなケースが典型です。

  • C:\Users\自分の名前\Documents\売上データ.xlsx のようなローカルフォルダの絶対パス
  • データベース接続文字列内のユーザーIDやパスワード(例:Server=localhost;UID=sa;PWD=mypassword)
  • SharePointやOneDrive上の個人用フォルダへのリンク
  • プライバシーレベルの設定で「個人用」に設定されたデータソース

これらの情報は自分だけが利用できる状態であり、他のユーザーがそのままクエリを開くとエラーが発生します。最悪の場合、パスワードが記述されたまま共有されるリスクも無視できません。

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

2. 個人パスを確認するための基本手順

まずはクエリに個人パスが含まれているかどうかを確認する方法を説明します。以下の手順は、Power Queryエディタを開いてから行います。

  1. Excelの「データ」タブから「クエリと接続」をクリックし、クエリ一覧を表示します。
  2. 確認したいクエリを右クリックし、「編集」を選択してPower Queryエディタを開きます。
  3. ホームタブの「クエリ」グループにある「詳細エディタ」ボタンをクリックします。
  4. 表示されたM言語のコードの中から、 “Source” や “Navigation” などデータソースを指定している行を探します。
  5. パスが “C:\Users\” や “\\個人サーバー\共有” など、明らかにローカルまたは個人固有の文字列になっていないか確認します。
  6. もしパラメーター(例:Excel.CurrentWorkbook(){[Name=”パラメーター”]}[Content] など)を使っていない直書きのパスがあれば、それが個人パスです。

確認時のポイント

詳細エディタ内のコードは、クエリの各ステップがM関数として記述されています。特に最初の方の行がデータソースの指定部です。また、”Credentials” や “Authorization” といったキーワードが含まれていないかも注意してください。資格情報が直接埋め込まれている場合、その行全体を削除またはパラメーターに置き換える必要があります。

3. 詳細エディタでソースコードを確認する方法

前述の通り、詳細エディタはクエリの全容をM言語で表示する機能です。ここで個人パスを見つけたら、次のように修正します。

  1. 該当するパス部分を選択し、コピーします。
  2. 事前に作成したパラメーター(例:Excelワークシートにリストとして定義)を参照するように書き換えます。
  3. 例えば、”C:\Users\tanaka\Data\file.xlsx” を “& パラメーター &” という形に変更します。
  4. 変更後、「完了」をクリックして詳細エディタを閉じます。
  5. パラメーターが正しく動作するか、適用したクエリをプレビューで確認します。

パラメーター化の具体例

ワークシート上に「FilePath」という名前のセルを作り、そこにネットワーク共有パス(例:\\server\shared\file.xlsx)を入力しておきます。Power Queryでそのセルをパラメーターとして参照するには、Excel.CurrentWorkbook(){[Name=”FilePath”]}[Content]{0}[Column1] のように記述します。こうすることで、クエリ自体には固定パスが残らず、受け取ったユーザーが自分の環境に合わせてパラメーター値を変更できます。

ADVERTISEMENT

4. 外部データソースの認証情報の扱い

データベースやSharePointなど、認証が必要なデータソースでは、クエリに資格情報が保存されることがあります。Power Queryの「データソース設定」から、認証情報が「Windows統合認証」や「組織アカウント」など、共有可能な方式になっているか確認します。

認証方式 個人情報リスク 共有時の推奨設定
Windows統合認証 低(ドメイン環境なら共有可能) そのまま利用可能
ユーザー名/パスワード埋め込み 高(そのまま共有すると漏洩) パラメーター化または削除し、各ユーザーが入力
組織アカウント(OAuth) 中(トークンがキャッシュされる) クエリ共有時に認証を要求する設定に

管理者へ確認すべきこと

会社のポリシーによっては、Power Queryで資格情報を埋め込むことが禁止されている場合があります。また、共有先のユーザーがアクセス権を持たないデータソースを参照していないか、IT部門に確認してください。管理者側でテンプレートやパラメーターシートを用意してもらうと、個人パスの混入を未然に防げます。

5. 共有前の最終チェックリスト

以下の項目をすべて確認してから、クエリを含むExcelファイルを共有してください。

  • □ 詳細エディタ内にローカルパスや個人名が含まれていないか
  • □ パラメーターを使用している場合、その値がシート上に適切に設定されているか
  • □ データソースの資格情報が埋め込まれていないか
  • □ プライバシーレベルが「組織」または「パブリック」に設定されているか(個人用は避ける)
  • □ 他のユーザー環境でクエリが正常に動作するかテストしたか

6. よくある質問

Q: 個人パスを削除した後にクエリが動かなくなりました。どうすればよいですか?
A: パラメーターの参照先が正しく設定されているか確認してください。特に、ワークシート上のパラメーター名とM言語内の名称が一致している必要があります。また、データソースが共有フォルダに存在しているかも確認しましょう。

Q: 共有前に毎回手動で確認するのは手間です。自動化できますか?
A: VBAマクロを使って詳細エディタの内容を調べたり、特定の文字列(“C:\” など)を検索する方法があります。ただし、マクロの実行にはセキュリティ警告が出る可能性があるため、事前に管理者の許可を得てください。

Q: パラメーター化するとファイルが重くなるので避けたいです。
A: パラメーターシートを別のブックに分離するか、Power Queryのクエリ内で相対パス(例:..\Data\file.xlsx)を利用する方法も検討できます。ただし、相対パスはファイルの保存場所に依存するため、共有前に絶対パスになっていないか注意が必要です。

Q: 既に共有してしまったファイルに個人パスが残っています。どう対処すれば?
A: 速やかにファイルを回収して修正するか、共有リンクのアクセス権を変更してください。個人情報が含まれている場合は、情報漏洩のリスクがあるため、管理者に報告し指示を仰いでください。

7. まとめ

Power Queryのクエリを共有する前には、必ず詳細エディタで個人パスや資格情報が残っていないか確認することが不可欠です。パラメーター化や相対パスの活用により、汎用的で安全なクエリにしておくことで、受け取った相手が迷わずに利用できます。また、会社のガイドラインに従い、管理者と連携してテンプレートを整備しておくと、ミスを減らせるでしょう。以上の手順を習慣化して、セキュリティリスクのないクエリ共有を実現してください。


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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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

ADVERTISEMENT