スクリプトは、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 を使用すると、スクリプトをアドオンとして公開できます。これにより、他のユーザーはアドオンストアからスクリプトをインストールできるようになります。
トリガー
バインド スクリプトでは、特別な onOpen()
関数などのシンプルなトリガーを使用できます。この関数は、編集権限を持つユーザーがファイルを開くたびに自動的に実行されます。すべての種類のスクリプトと同様に、インストール可能なトリガーも使用できます。
カスタム関数
カスタム関数とは、Google スプレッドシートにバインドされたスクリプト内の関数で、=myFunctionName()
という構文を使用してセルから直接呼び出すものです。したがって、カスタム関数は、スプレッドシートに用意されている何百もの組み込み関数(AVERAGE
や SUM
など)と似ていますが、カスタム関数の動作を定義するという点が異なります。
バインドされたスクリプトへのアクセス
コンテナの編集権限を持つユーザーのみが、コンテナにバインドされたスクリプトを実行できます。閲覧権限しかない共同編集者は、スクリプト エディタを開くことはできません。ただし、コンテナ ファイルのコピーを作成した場合、そのコピーのオーナーになり、スクリプトのコピーを表示して実行できます。
スクリプトのコンテナ ファイルを共有する方法については、Google ドライブのファイルを共有するをご覧ください。