Google Workspace のカスタム メニュー

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

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

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

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

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

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp 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 or FormApp.
     .alert('You clicked the first menu item!');
}

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

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

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

Apps Script の関数を Google スプレッドシートの画像や図形描画に割り当てることもできます(スクリプトがスプレッドシートにバインドされている場合)。以下の例で、この設定方法を示します。

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

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

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

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

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

Apps Script の関数を Google サイトのリンクに割り当てることもできます(ただし、スクリプトがサイトにバインドされている必要があります)。以下の例は、この設定方法を示しています。

  1. Google サイトで [その他] > [サイトを管理] をクリックします。
  2. サイドバーで [Apps Script]、[新しいスクリプトを追加] の順にクリックし、サイトにバインドするスクリプトを作成します。
  3. スクリプト エディタ内のコードをすべて削除して、以下のコードを貼り付けます。このコードは、ユーザーがリンクをクリックすると送信されます。

      function sitesLink() {
        var recipient = Session.getActiveUser().getEmail();
        GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!');
      }
    
  4. Google サイトに戻り、ページを編集します。リンクのラベル(Click me など)を入力し、テキストを選択して [挿入] > [リンク] を選択します。

  5. 表示されたダイアログで [Apps Script] をクリックし、作成した sitesLink 関数をクリックします。[OK] をクリックします。

  6. ページ上部の [保存] をクリックします。

  7. ページに追加したリンクをクリックします。

  8. スクリプトに認証が必要であることを示すダイアログ ボックスが表示されます。 [OK] をクリックします。2 つ目のダイアログ ボックスで、特定の Google サービスの承認をリクエストします。通知をよく読み、[許可]、[閉じる] の順にクリックします。

  9. スクリプトが承認されたら、ページに追加したリンクをもう一度クリックします。関数が実行されます。 メールをチェックして、自分で送信したメールを確認します。