ADVERTISEMENT

【Excel】Power QueryでWeb API更新時に401 Unauthorizedが出る時の確認手順

【Excel】Power QueryでWeb API更新時に401 Unauthorizedが出る時の確認手順
🛡️ 超解決

ExcelのPower Queryを使ってWeb APIからデータを取得していると、ある日突然「401 Unauthorized」エラーが表示されて更新できなくなることがあります。このエラーは認証に関する問題を示しており、原因は多岐にわたります。本記事では、Power QueryでWeb API更新時に401エラーが発生した場合に、迅速に原因を特定し解決へ導くための確認手順を解説します。初心者の方でも実践できるよう、具体的な操作手順や失敗パターン、管理者への確認依頼のポイントも含めてまとめました。

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

  • 最初に見る場所: Power Queryの「データソース設定」と「資格情報」の状態を確認します。特に「匿名」「Windows」「基本」「Web API」の各設定が正しいかをチェックします。
  • 切り分けの軸: 認証情報の有効期限切れ、認証方式の不一致、アクセストークンのスコープ不足、APIキーの変更など、端末側・アカウント側・管理設定側の3軸で問題を切り分けます。
  • 注意点: 会社PCではIT管理者の許可なく認証情報を書き換えたり、ブラウザのパスワード保存を変更したりしないでください。APIのアクセス権限変更が必要な場合は必ず管理者に依頼しましょう。

ADVERTISEMENT

原因の切り分け方

401 Unauthorizedは「認証に失敗した」ことを意味します。Power QueryのWeb API接続では、主に以下の3つのカテゴリで原因を切り分けることができます。

認証情報の有効期限切れ

多くのWeb APIでは認証トークン(アクセストークンやAPIキー)に有効期限が設定されています。Power Queryは一度取得したトークンを資格情報として保存しますが、そのトークンが期限切れになると401エラーが発生します。特にOAuth2.0を利用している場合、リフレッシュトークンが自動更新されないと手動での再認証が必要です。また、Basic認証でもパスワード変更後にPower Queryの資格情報を更新していないケースが該当します。

認証方式の相違

Power Queryの「データソース設定」で選択した認証方式と、APIが要求する方式が一致している必要があります。例えばAPIがOAuth2.0を要求しているのに「基本」や「匿名」を指定していると401エラーになります。また、認証ヘッダーの形式(Bearerトークン、Basic Base64エンコードなど)が正しくない場合も同様です。Power Queryのクエリエディタで「ソース」ステップのM言語を確認すれば、URLや認証ヘッダーの詳細をチェックできます。

アクセストークンのスコープ不足

OAuth2.0ではトークンにスコープ(アクセス権限の範囲)が設定されています。APIのエンドポイントによって必要なスコープが異なり、アプリケーション登録時に適切なスコープを設定していないと401エラーが発生します。例えば「読み取り専用」のトークンで書き込みエンドポイントにアクセスしようとすると拒否されます。この問題はPower Query側ではなく、アプリケーション登録やアクセス許可の設定に起因します。

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

具体的な確認手順

以下の手順を順番に実施することで、原因を特定し解決へ導きます。各手順を実施する際は、変更前の状態をメモしておくとトラブルシューティングに役立ちます。

  1. データソース設定の確認
    Excelの「データ」タブ → 「クエリと接続」 → 「プロパティ」 → 「定義」タブで「接続文字列」を確認します。続いて「データ」タブ → 「データソース設定」を開き、該当するWeb APIのエントリを選択し「資格情報の編集」をクリック。認証方式が「匿名」「Windows」「基本」「Web API」のいずれかで、APIの仕様と一致しているか確認します。
  2. 資格情報の再入力
    「データソース設定」で該当のAPIを選択し「資格情報の編集」を開き、「編集」ボタンから認証情報を再入力します。基本認証の場合はユーザー名とパスワード、Web APIの場合はAPIキーやアクセストークンを最新のものに置き換えます。再度クエリを更新してエラーが解消するかテストします。
  3. ブラウザでの認証テスト
    Power Queryが内部的に使用するInternet Explorer(またはEdge)の認証キャッシュが古い可能性があります。別のブラウザ(Chromeなど)でAPIのURLに直接アクセスし、認証ダイアログが表示されるか、正常にデータが返るかを確認します。ブラウザで問題なくアクセスできるなら、Power Queryの資格情報保存に問題がある可能性が高いです。
  4. Power Queryのキャッシュクリア
    Excelの「データ」タブ → 「クエリと接続」 → 該当クエリの右クリックメニューから「プロパティ」 → 「使用状況」タブで「このクエリを更新するたびにパスワードを確認する」にチェックを入れ、一度パスワードを再入力して更新します。また、Windowsの「資格情報マネージャー」から「Windows資格情報」内のPower Query関連エントリ(例:Microsoft Office 365やWebサイトの資格情報)を削除してから再試行する方法もあります。
  5. APIのトークンページで確認
    API提供元の管理画面で、現在のアクセストークンの有効期限やスコープを確認します。特にOAuth2.0の場合は「アプリケーションの認証」画面からトークンの再発行が可能です。必要に応じて新しいトークンを発行し、Power Queryの資格情報に反映します。
  6. 管理者にAPIアクセス権限の変更を依頼
    上記の手順で解決しない場合、API側でアクセス権限の変更やアプリケーションの再登録が必要な可能性があります。IT管理者に連絡し、該当APIの「アプリケーションID」や「シークレット」が正しいか、スコープ設定に不足がないかを確認してもらいます。

よくある失敗パターンと対処例

実際の現場で発生しやすいパターンとその対処法を紹介します。

失敗パターン 原因 対処法
「Web API」認証でAPIキーを入力したが401が出る APIキーが期限切れ、またはAPI側でキーが無効化された API提供元の管理画面で新しいキーを発行し、Power Queryの資格情報を更新する
「基本」認証でユーザー名とパスワードを入力しても401 パスワード変更後にPower Queryの資格情報が古いまま データソース設定から資格情報を再編集し、最新のパスワードに変更する
OAuth2.0認証で「サインイン」ボタンを押すとエラー アプリケーションのリダイレクトURIが未設定または誤り 管理者に依頼し、API登録時にPower Queryから送られるコールバックURLを許可リストに追加する
「匿名」認証でアクセスしていたが突然401 APIが認証必須に変更された、またはIP制限がかかった APIの仕様変更を確認し、適切な認証方式に切り替える。必要なら管理者に問い合わせる

ADVERTISEMENT

管理者に確認すべき設定内容

401エラーの原因がPower Query側ではなく、組織のIT設定やAPIのアクセス許可にある場合があります。以下の情報をまとめて管理者に伝えると解決がスムーズです。

  • APIのエンドポイントURLと認証方式:Power Queryで使用しているURLと、選択している認証方式(Basic、OAuth2.0、APIキーなど)を正確に伝えます。
  • 発生している具体的なエラーメッセージ:Power Queryに表示されるエラーコードやメッセージをスクリーンショットして共有します。
  • 使用しているアプリケーション登録情報:OAuth2.0の場合、アプリケーション(クライアント)IDやテナントID、リダイレクトURIが正しいか確認を依頼します。
  • ネットワーク制限の有無:プロキシ認証やファイアウォールによるブロックの可能性を確認してもらいます。Power Queryの接続テストを管理者環境で行うことも有効です。

よくある質問(Q&A)

質問 回答
Power Queryで「匿名」認証を使っていたのに401が出るのはなぜですか? API側で認証要件が変更された可能性が高いです。APIのドキュメントを確認し、認証方式が変更されていないか調べてください。
「Web API」認証でAPIキーを入力したのに401が続く場合、どうすればいいですか? APIキーに有効期限がないか、API側でキーが無効化されていないか確認します。また、キーの先頭や末尾に不要な空白が含まれていないかもチェックしてください。
OAuth2.0で「サインイン」して認証画面が表示されずに401になるのはなぜ? アプリケーション登録のリダイレクトURIが不足している可能性があります。Power Queryが使用するコールバックURL(通常はhttp://localhost:port)をAPIの許可リストに追加する必要があります。
資格情報を再入力しても401が解消しません。次の一手は? Windowsの資格情報マネージャーからPower Query関連のエントリをすべて削除し、Excelを再起動してから再度認証を試みてください。それでもダメなら管理者にAPIのアクセス権限設定を確認してもらいましょう。

まとめ

Power QueryでWeb API更新時に401 Unauthorizedが発生した場合は、まず認証情報の有効期限と方式の一致を確認してください。次にデータソース設定や資格情報の再入力、ブラウザでの動作確認を行い、それでも解決しない場合は管理者にAPIの設定変更を依頼します。本記事で紹介した手順に沿って切り分ければ、多くのケースで迅速に問題を解決できるはずです。日頃からAPIの仕様変更や認証トークンの期限に注意し、定期的に資格情報を更新する習慣をつけることで、突発的なエラーを予防できます。


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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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

ADVERTISEMENT