Google Apps Script(GAS)を利用している際に「権限がない」というエラーが表示されることがあります。これは、スクリプトや連携しているスプレッドシート・ドキュメントの共有設定が原因である場合がほとんどです。特に会社のGoogle Workspaceアカウントで作業している場合、組織外のユーザーや別ドメインとの共有で問題が発生しやすくなります。本記事では、権限エラーの具体的な原因と、共有元の確認手順を詳しく解説します。適切な対応をとるために、まずはどの段階で権限が不足しているのかを切り分けることが重要です。
【要点】この記事で確認すること
- 最初に見る場所: スクリプトの編集画面で「権限を確認」ボタンをクリックした際のエラーメッセージ、およびファイルの共有設定画面(共有相手と権限レベル)。
- 切り分けの軸: ①スクリプトが紐づくファイル(スプレッドシートなど)の共有設定、②スクリプトの公開設定(ウェブアプリ・アドオンなど)、③実行アカウントの組織ポリシー(Google Workspace管理者の制限)。
- 注意点: 会社のアカウントで個人のGoogleアカウントにスクリプトを共有する場合、組織の外部共有ポリシーが適用されるため、管理者の許可が必要なケースがあります。むやみに共有設定を緩める前に、まずは現在の状態を正確に把握してください。
ADVERTISEMENT
権限エラーが発生する主な原因
Google Apps Scriptで「権限がない」というエラーは、大別して3つの原因があります。それぞれの特徴を理解することで、解決までの時間を短縮できます。
スクリプトが紐づくファイル自体が共有されていない
最も多いケースは、スクリプトを実行したいユーザーが、そのスクリプトが含まれているファイル(例:スプレッドシート、ドキュメント)に対してアクセス権を持っていない場合です。スクリプトは親ファイルの権限を継承するため、親ファイルへのアクセスがなければスクリプトの実行すらできません。たとえば、自分が作成したスプレッドシートにスクリプトを組み込んだ状態で、同僚に「このシートを開いてマクロを実行してほしい」と依頼したものの、共有設定で同僚に「編集者」権限を与えていなければ、スクリプトの実行時に権限エラーが発生します。
スクリプトの公開設定が不適切
スクリプトをアドオンやウェブアプリとして公開している場合、公開設定(「全員」「ドメイン内の全員」「特定のユーザー」など)が適切でないと、実行しようとするユーザーが権限エラーになります。特に「全員(匿名ユーザーを含む)」に設定していても、スクリプト内で呼び出すGoogleサービス(例:Gmail API)のスコープによっては追加の認証が必要になるため注意が必要です。
組織のポリシーによる制限
Google Workspaceを利用している場合、管理者がApps Scriptの実行を制限していることがあります。具体的には、外部ユーザーとの共有を禁止するポリシーや、未承認のスクリプトの実行をブロックする設定が該当します。この場合はユーザー側で変更できず、管理者に問い合わせる必要があります。
共有元を確認するための手順
権限エラーが発生したら、以下の手順で共有元を確認してください。ここでは、最も一般的なスプレッドシートに紐づくスクリプトを例に説明します。
- スプレッドシートを開く: スクリプトが実行されるスプレッドシート(またはドキュメント)を開きます。
- 共有設定を確認する: 画面右上の「共有」ボタンをクリックし、現在の共有相手と権限レベル(閲覧者、コメント者、編集者)を確認します。エラーが発生しているユーザーのメールアドレスが一覧に含まれているか、また権限が「編集者」以上であることを確認してください。
- スクリプトエディタを開く: メニューから「拡張機能」→「Apps Script」をクリックしてスクリプトエディタを開きます。
- プロジェクトの共有設定を確認する: スクリプトエディタの左側にある「設定」アイコン(歯車)をクリックし、「プロジェクトの共有」を選択します。そこで、スクリプトプロジェクト自体がどのように共有されているか確認できます。「ファイル」の共有とは別に、スクリプトプロジェクトにも共有設定がある点に注意してください。
- 公開設定を確認する: スクリプトをアドオンやウェブアプリとして公開している場合は、エディタの「デプロイ」メニューから「新しいデプロイ」を開き、アクセスできるユーザーの範囲を確認します。特に「全員」「自分の組織内の全員」「特定のユーザー」のいずれが選択されているかが重要です。
- 認証画面を確認する: スクリプトを初めて実行する際に表示されるOAuth同意画面で、要求される権限(スコープ)を確認します。ユーザーが拒否した場合も権限エラーになります。
状況別の権限設定比較表
以下に、よくあるシチュエーションごとに必要な設定をまとめました。
| 状況 | ファイル共有 | スクリプトプロジェクト共有 | デプロイ設定 |
|---|---|---|---|
| 同じGoogle Workspace組織内のユーザーがスクリプトを実行する | 編集者以上で共有 | 編集者以上で共有 | 「組織内の全員」または「特定のユーザー」 |
| 組織外のユーザー(個人アカウントなど)がスクリプトを実行する | 編集者以上で共有 | 編集者以上で共有 | 「全員(匿名ユーザーを含む)」または「特定のユーザー」 |
| ウェブアプリとしてスクリプトを公開し、匿名ユーザーがアクセスする | 不要(ただしスクリプトが参照するデータには別途アクセス制限) | 不要 | 「全員(匿名ユーザーを含む)」 |
| アドオンとして配布する | 必要に応じて | 必要に応じて | 「全員」または「Google Workspace Marketplace」での公開設定 |
よくある失敗パターンとその対処法
失敗パターン1: 親ファイルの共有を忘れている
「スクリプトを共有したのに権限がない」と言われた場合、スクリプトエディタのプロジェクト共有設定だけを変更し、親ファイル(スプレッドシートなど)の共有設定を行っていないケースです。対処法は、親ファイルの共有設定を開き、ユーザーを追加して権限を「編集者」に設定します。スクリプトの実行には編集者権限が必要であることを覚えておきましょう。
失敗パターン2: スクリプトプロジェクトの共有を忘れている
逆に親ファイルは共有したものの、スクリプトプロジェクト自体を共有していない場合も権限エラーになります。親ファイルとスクリプトプロジェクトは別物であり、両方の共有設定が必要です。特にスクリプトを他のユーザーが編集できるようにしたい場合は、スクリプトプロジェクトの共有も編集者権限で設定してください。
失敗パターン3: 組織の外部共有ポリシーに引っかかる
会社のGoogle Workspaceアカウントでスクリプトを作成し、個人のGmailアカウントなど組織外のユーザーと共有しようとすると、管理者が外部共有を禁止している場合があります。エラーメッセージに「管理者がこの操作を許可していません」といった内容が含まれていたら、Google Workspaceの管理者に連絡して、外部共有のポリシー緩和を依頼するか、代替手段を検討してください。
管理者に確認すべき情報と伝え方
権限エラーの原因が組織ポリシーにある場合、管理者に依頼する必要があります。その際、以下の情報を整理して伝えるとスムーズです。
- 発生しているエラーの具体的な内容: スクリーンショットやエラーメッセージのテキストを提供します。
- スクリプトの用途と実行環境: どのファイルで、誰が、何のためにスクリプトを実行しようとしているのかを説明します。
- 必要な共有範囲: 組織内限定なのか、外部ユーザーも含むのかを明確にします。
- 管理者に確認してほしい設定項目: 「Apps Scriptの実行許可」「外部共有の許可」「未承認アプリの許可」など、具体的なポリシー項目を挙げます。
例えば、「現在スプレッドシートのスクリプトを組織外のユーザーと共有しようとしたところ、権限エラーが発生しました。管理者設定で外部共有ポリシーが制限されている可能性があります。確認していただけますか?」といった伝え方が適切です。
よくある質問(FAQ)
Q1. 権限を付与したはずなのに、まだエラーが出ます。
権限の反映には数分かかることがあります。また、ユーザーが一度エラーを経験すると、ブラウザのキャッシュやCookieに古い情報が残っている場合があります。ユーザーにブラウザのキャッシュをクリアしてもらうか、シークレットウィンドウで再度試すよう依頼してください。さらに、スクリプトのデプロイバージョンが古い可能性もあるため、再デプロイも試してみましょう。
Q2. スクリプトを実行すると「このアプリは確認されていません」と表示されます。
これはGoogleのOAuth同意画面で、アプリが未確認であることを警告するものです。個人利用であれば「詳細」→「安全ではないページに移動」で進むことも可能ですが、組織で利用する場合は、Google Workspace管理者がアプリを検証・承認する必要があります。管理者に依頼して、アプリの検証プロセスを進めてもらいましょう。
Q3. ウェブアプリとして公開したのに、外部ユーザーからアクセスできません。
デプロイ設定で「全員(匿名ユーザーを含む)」が選択されているか確認してください。また、ウェブアプリがGoogle Workspace組織のポリシーで外部公開をブロックされている可能性があります。管理者に問い合わせてください。
まとめ
Google Apps Scriptの権限エラーは、共有元の設定ミスや組織ポリシーが原因であることが大半です。まずは親ファイルとスクリプトプロジェクトの両方の共有設定を確認し、次にデプロイ設定と組織ポリシーをチェックしましょう。適切な権限設定を行えば、ほとんどの問題は解決します。管理者に問い合わせる際は、具体的なエラー内容と必要な共有範囲を伝えることで、迅速な対応が期待できます。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Gmail・Googleアカウントの人気記事ランキング
- 【Gmail】Googleからの本物のセキュリティ通知か見分ける方法
- 【Googleアカウント】本人確認が必要ですと出る時の端末と場所の確認
- 【Googleアカウント】Google Playだけログインできない時のアカウント確認
- 【Gmail】Gmailのカテゴリタブとラベルを使い分ける整理術
- 【Googleアカウント】パスキーでログインできない時の代替ログイン手順
- 【Googleアカウント】パスワードを忘れた時の再設定と注意点
- 【Googleアカウント】会社アカウントと個人アカウントを分けたい時の運用方法
- 【Googleアカウント】確認コードが届かない時の電話番号とメール確認
- 【Googleアカウント】共有PCにログイン情報を残した時の削除手順
- 【Googleアカウント】古い端末に残ったGoogleアカウントを安全に削除する方法
