Google Workspace のカスタム メニュー

スクリプトでは、クリックされたときに Apps Script 関数を実行するユーザー インターフェース要素を追加することで、特定の Google サービスを拡張できます。最も一般的な例は、Google ドキュメント、スプレッドシート、スライド、フォームのカスタム メニュー アイテムからスクリプトを実行することですが、Google スプレッドシートで画像や図形をクリックしてスクリプト関数をトリガーすることもできます。

Google ドキュメント、スプレッドシート、スライド、フォームのカスタム メニュー

Apps Script では、Google ドキュメント、スプレッドシート、スライド、フォームに新しいメニューを追加できます。各メニュー項目はスクリプト内の関数に関連付けられます。(Google フォームでは、カスタム メニューはフォームを開いて変更する編集者にのみ表示され、フォームを開いて回答するユーザーには表示されません)。

スクリプトでメニューを作成できるのは、ドキュメント、スプレッドシート、フォームにバインドされている場合のみです。ユーザーがファイルを開いたときにメニューを表示するには、onOpen() 関数内にメニュー コードを記述します。

次の例は、1 つの項目を含むメニュービジュアル セパレーター、別の項目を含むサブメニューを追加する方法を示しています。(Google スプレッドシートでは、新しいバージョンを使用している場合を除き、代わりに addMenu() 構文を使用する必要があります。また、サブメニューは使用できません)。ユーザーがいずれかのメニュー項目を選択すると、対応する関数によってアラート ダイアログが開きます。開くことができるダイアログの種類について詳しくは、ダイアログとサイドバーのガイドをご覧ください。

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp, SlidesApp or FormApp.
  ui.createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addSeparator()
      .addSubMenu(ui.createMenu('Sub-menu')
          .addItem('Second item', 'menuItem2'))
      .addToUi();
}

function menuItem1() {
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.
     .alert('You clicked the first menu item!');
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.
     .alert('You clicked the second menu item!');
}

ドキュメント、スプレッドシート、プレゼンテーション、フォームには、指定した名前のメニューを 1 つだけ含めることができます。同じスクリプトまたは別のスクリプトで同じ名前のメニューが追加された場合、古いメニューは新しいメニューに置き換えられます。ファイルが開いている間はメニューを削除できませんが、特定のプロパティが設定されている場合は、onOpen() 関数を記述して、今後メニューをスキップするようにできます。

Google スプレッドシートのクリック可能な画像と図形

スクリプトがスプレッドシートにバインドされている限り、Google スプレッドシートの画像や図形に Apps Script 関数を割り当てることもできます。設定方法は次のとおりです。

  1. Google スプレッドシートで、メニュー項目の [拡張機能] > [Apps Script] を選択して、スプレッドシートにバインドされたスクリプトを作成します。
  2. スクリプト エディタ内のコードを削除して、以下のコードを貼り付けます。

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. スプレッドシートに戻り、[挿入] > [画像] または [挿入] > [描画] を選択して、画像または描画を挿入します。

  4. 画像または図形を挿入したら、その画像または図形をクリックします。右上に小さなプルダウン メニュー セレクタが表示されます。クリックして [スクリプトを割り当てる] を選択します。

  5. 表示されたダイアログ ボックスに、実行する Apps Script 関数の名前(この場合は showMessageBox)を角かっこなしで入力します。[OK] をクリックします。

  6. 画像または図形描画をもう一度クリックします。関数が実行されます。