スクリプトが 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 ドキュメントでは、
getActiveTab()
、getCursor()
、getSelection()
を使用すると、スクリプトでユーザーの現在のタブ、カーソルの位置、選択したテキストを特定できます。setActiveTab(tabId)
、setCursor(position)
、setSelection(range)
を使用すると、スクリプトでこれらの選択を変更できます。
詳しくは、Google スプレッドシートを拡張するためのガイドまたは Google ドキュメントを拡張するためのガイドをご覧ください。
カスタム メニュー、ダイアログ、サイドバー
バインドされたスクリプトは、カスタム メニューやダイアログ ボックスまたはサイドバーを追加して、Google スプレッドシート、Google ドキュメント、Google フォームをカスタマイズできます。ただし、スクリプトが操作できるのは、開いているファイルの現在のインスタンスのユーザー インターフェースのみです。つまり、1 つのドキュメントにバインドされたスクリプトは、別のドキュメントのユーザー インターフェースに影響を与えることはできません。
トリガー
バインドされたスクリプトでは、特別な onOpen()
関数などのシンプルなトリガーを使用できます。この関数は、編集権限を持つユーザーがファイルを開くたびに自動的に実行されます。他のすべてのタイプのスクリプトと同様に、インストール可能なトリガーも使用できます。
カスタム関数
カスタム関数は、Google スプレッドシートにバインドされたスクリプト内の関数です。構文 =myFunctionName()
を使用してセルから直接呼び出します。カスタム関数は、AVERAGE
や SUM
など、スプレッドシートの数百もの組み込み関数と似ていますが、カスタム関数の動作を定義するのはユーザーです。
バインドされたスクリプトへのアクセス
コンテナの編集権限を持つユーザーのみが、そのバインドされたスクリプトを実行できます。閲覧権限のみを持つ共同編集者は、スクリプト エディタを開くことはできません。ただし、コンテナ ファイルのコピーを作成すると、そのコピーのオーナーになり、スクリプトのコピーを表示して実行できます。
スクリプトのコンテナ ファイルを共有する方法については、Google ドライブのファイルを共有するをご覧ください。