スクリプトがスタンドアロン スクリプトとしてではなく、そのドキュメントから作成された場合、スクリプトは 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 ドライブのファイルを共有するをご覧ください。