Google スプレッドシート、ドキュメント、スライド、フォームのファイルから作成されたスクリプトは、スタンドアロンのスクリプトとしてそのファイルにバインドされません。バインドされたスクリプトが添付されるファイルは「コンテナ」と呼ばれます。バインドされたスクリプトは、一般的にスタンドアロン スクリプトのように動作しますが、Google ドライブに表示されず、バインドされているファイルから接続解除できず、親ファイルに対するいくつかの特別な権限が付与されます。
スクリプトを Google サイトにバインドすることもできますが、これらのスクリプトはほぼ常にウェブアプリとしてデプロイされます。Google スプレッドシート、ドキュメント、スライド、フォームにバインドされているスクリプトをウェブアプリにすることもできますが、これは一般的ではありません。
バインドされたスクリプトを作成する
Google ドキュメント、スプレッドシート、スライド
Google ドキュメント、スプレッドシート、スライドでバインドされたスクリプトを作成するには、ドキュメントでドキュメント、スプレッドシートでスプレッドシート、スライドでプレゼンテーションを開き、[拡張機能] > [Apps Script] をクリックします。今後スクリプトを再度開くには、同じことを行うか、Apps Script ダッシュボードからスクリプトを開きます。
Google フォーム
Google フォームでバインドされたスクリプトを作成するには、フォームを開いて、その他アイコン > [スクリプト エディタ] をクリックします。後でスクリプトを再度開くには、同じことを行うか、Apps Script ダッシュボードからスクリプトを開きます。
特別なメソッド
バインドされたスクリプトは、スタンドアロン スクリプトではできないいくつかのメソッドを呼び出すことができます。
getActiveSpreadsheet()
、getActiveDocument()
、getActivePresentation()
、getActiveForm()
は、バインドされたスクリプトがファイルの ID を参照せずに親ファイルを参照できるようにします。getUi
を使用すると、バインドされたスクリプトは親ファイルのユーザー インターフェースにアクセスし、カスタム メニュー、ダイアログ、サイドバーを追加できます。- Google スプレッドシートでは、
getActiveSheet()
、getActiveRange()
、getActiveCell()
によってスクリプトによって、ユーザーの現在のシート、選択したセル範囲、選択された個々のセルを判別できます。setActiveSheet(sheet)
とsetActiveRange(range)
を使用すると、スクリプトでこれらの選択を変更できます。 - Google ドキュメントでは、
getCursor()
とgetSelection()
を使用して、スクリプトでユーザーのカーソルまたは選択したテキストの位置を指定できます。setCursor(position)
とsetSelection(range)
を使用すると、スクリプトでこれらの位置を変更できます。
詳しくは、Google スプレッドシートの拡張に関するガイドまたは Google ドキュメントの拡張に関するガイドをご覧ください。
カスタム メニュー、ダイアログ、サイドバー
バインドされたスクリプトでは、カスタム メニューやダイアログ ボックスやサイドバーを追加して、Google スプレッドシート、ドキュメント、フォームをカスタマイズできます。ただし、スクリプトがユーザー インターフェースとやり取りできるのは、開いているファイルの現在のインスタンスについてのみであることにご注意ください。つまり、あるドキュメントにバインドされたスクリプトが別のドキュメントのユーザー インターフェースに影響を与えることはできません。
アドオン
アドオンは、Gmail、Google スプレッドシート、ドキュメント、スライド、フォーム内で実行されます。バインドされたスクリプトまたはスタンドアロン スクリプトを作成し、それを世界中のユーザーと共有する場合は、Apps Script を使用して、スクリプトをアドオンとしてpublishできます。これにより、他のユーザーはアドオンストアからスクリプトをインストールできるようになります。
トリガー
バインドされたスクリプトでは、特別な onOpen()
関数などのシンプルなトリガーを使用できます。この関数は、編集権限を持つユーザーがファイルを開くたびに自動的に実行されます。他の種類のスクリプトと同様に、インストール可能なトリガーも使用できます。
カスタム関数
カスタム関数は、Google スプレッドシートにバインドされたスクリプト内の関数で、構文 =myFunctionName()
を使用してセルから直接呼び出します。したがって、カスタム関数は、スプレッドシートの何百もの組み込み関数(AVERAGE
や SUM
など)と類似していますが、カスタム関数の動作は自身で定義できます。
バインドされたスクリプトへのアクセス
コンテナの編集権限を持つユーザーのみが、コンテナにバインドされたスクリプトを実行できます。閲覧権限しかない共同編集者は、スクリプト エディタを開くことはできません。ただし、コンテナ ファイルのコピーを作成した場合、そのコピーのオーナーとなり、スクリプトのコピーを表示して実行できます。
スクリプトのコンテナ ファイルを共有する方法については、Google ドライブのファイルを共有するをご覧ください。