共有されたスプレッドシートからGASスクリプトエディタが開けない場合の対処方法

他のユーザーから権限付与されたスプレッドシートに紐づいたGoogle Apps Script(GAS)のスクリプトエディタを、メニューから開こうとしてエラー画面が表示されることがあります。

そうしたコンテナバインドのGASスクリプトを開くことができない場合の解決法を紹介します。

スプレッドシートは共有が簡単

Googleが提供するスプレッドシートは他のユーザーとのファイル共有が簡単です。

スプレッドシートをブラウザで開いた際、右上にある権限からユーザーを共有したいユーザーを追加することで、すぐに共有することができます。

スプレッドシートはGoogleアカウントをもつユーザーに対し簡単に権限を付与可能

※下記の記事でスプレッドシートの共有方法を解説しています。

【2020年版】Googleスプレッドシートで共有権限とリンク共有する手順を図説

スプレの権限付与は紐付いたGASも有効

スプレッドシートを共有すると、そのスプレッドシートファイルに紐づいているGoogle Apps Script(GAS)のプロジェクトも自動的に共有されます。

コンテナバインドスクリプトと呼ばれるGASスクリプトは、紐付いているスプレッドシートの共有設定がそのまま継承されます。

スプレッドシートのメニューにある「拡張機能>Apps Script」からGASプロジェクトに遷移できます。

スプレッドシートに紐づくコンテナバインドなGoogle Apps Scriptプロジェクトをメニュー「拡張機能>Apps Script」から表示

そのため、スプレッドシートに共有したいユーザーを追加すれば、GASプロジェクトのスクリプトファイルも共有可能です。

スプレッドシートからGASプロジェクトが開けない

しかし、他のユーザーから共有されたスプレッドシートで、コンテナバインドのGoogle Apps Script(GAS)を開こうとするとエラーが表示されることがあります。

先程の紹介した「拡張機能>Apps Script」を選択すると、「現在、ファイルを開くことができません。」とGASスクリプトを開けない状態に陥るケースです。

他のユーザーから共有されたスプレッドシートに紐づくコンテナバインドのGoogle Apps Script(GAS)を開こうとしたところ、表示されないエラーの対処方法

スプレッドシートで稼働するGASで開発したツールを、組織内のメンバーに多く共有している場合にGASが開けない事象が発生しやすくなります。

「共有してもらったスプレッドシートからGASスクリプトが表示されない」と共有相手からアピールを受けます。

Chromeのログインアカウントが原因

スプレッドシートからGASスクリプトエディタが開けない原因は、共有したユーザーのブラウザ環境です。

共有したスプレッドシートをChromeブラウザで開いた場合、ページの右上にユーザーアイコンが表示され、選択すると、ユーザーIDが確認できます。

スプレッドシートにログインしているユーザーのGoogleアカウントを確認

※スプレッドシートのユーザーはmから始まるgmailアカウントになっています。

それに対し、先程のGASスクリプトエディタが開けなかったエラー画面のユーザー情報を確認すると、異なるユーザーになっています。

他のユーザーから共有されたスプレッドシートに紐づくコンテナバインドのGoogle Apps Script(GAS)を開こうとしたところ、表示されないエラー画面になったときのユーザーはスプレッドシートの共有ユーザーと異なる状態

※Chromeログインユーザーはnから始まるgmailアカウントです。

スプレッドシートの権限付与されたユーザーと、Chromeブラウザにログインしているユーザーが異なっていました。

スプレッドシートのメニューからGASスクリプトエディタを開く際、Chromeブラウザにログインしているユーザーとしてアクセスします。

そのため、スプレッドシートで共有されたユーザーではない、権限が付与されていないユーザーでGASプロジェクトにアクセスしたため、スクリプトエディタが表示されない事象が発生します。

解決策はChromeとスプレッドシートのユーザーを統一

このように共有したスプレッドシートに紐づくコンテナバインドのGASスクリプトが開けない場合の対処方法は、「Chromeブラウザとスプレッドシートのユーザーを揃えること」です。

Google Apps Script(GAS)を扱う上で、ChromeブラウザのGoogleアカウントとスプレッドシートのGoogleアカウントを統一しておくことが重要

上記のようにChromeブラウザにログインしているユーザーと、スプレッドシートでログインしているユーザーが同一であれば、権限周りでエラーが起きる可能性は極めて低くなります。

Chromeログインユーザーとスプレッドシートのユーザーが同一にしておけば、GASスクリプトエディタでプロジェクトも問題なく表示

さきほどと同じようにスプレッドシートの「拡張機能>Apps Script」を選択すると、GASスクリプトエディタが正常に表示することができます。

まとめ・終わりに

今回、共有されたスプレッドシートに紐づいたGoogle Apps Script(GAS)のプロジェクトがメニューから開くことができない場合の原因を紹介しました。

上手くコンテナバインドのスクリプトが開けない原因は、ChromeブラウザにログインしているGoogleアカウントと、スプレッドシートにログインしているGoogleアカウントが異なるためです。

スプレッドシートのメニューにある拡張機能から「Apps Script」を選択して、GASプロジェクトを開くとき、Chromeブラウザのアカウントでアクセスします。

Chromeブラウザのユーザーには共有権限が付与されていないため、GASプロジェクト画面が表示エラーになります。

そのため、Chromeブラウザのログインアカウントと各Googleサービスのログインアカウントは揃えておくのがオススメです。

共有されたスプレッドシートに紐づいたGASコンテナバインドスクリプトが表示できない場合は、アカウント周りを確認しましょう。