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