ADVERTISEMENT

【Googleドキュメント】Apps Scriptでカスタムメニュー追加!ユーザー独自機能の組込

【Googleドキュメント】Apps Scriptでカスタムメニュー追加!ユーザー独自機能の組込
🛡️ 超解決

Googleドキュメントで繰り返し行う作業を自動化したいと思ったことはありませんか。例えば、特定の文字列を一括置換したり、テンプレートを挿入したりする操作を、毎回手動で行うのは非効率です。この記事では、Apps Scriptを使ってGoogleドキュメントにカスタムメニューを追加し、自分だけの機能を組み込む方法を解説します。メニューからワンクリックでスクリプトを実行できるようになり、業務効率が大幅に向上します。

具体的には、スクリプトエディタの開き方から、メニューを追加するコードの書き方、メニュー項目に関数を割り当てる方法までを順を追って説明します。また、よくあるエラーやトラブルシューティングも紹介しますので、初心者の方でも安心して実践できます。

この記事を読み終えるころには、自分専用のカスタムメニューを備えたGoogleドキュメントが手に入ります。ぜひ最後までご覧ください。

【要点】Apps Scriptでカスタムメニューを作成する3ステップ

  • onOpen関数: ドキュメントを開くたびに自動実行され、メニューを追加するトリガーとして機能します。
  • createMenuとaddItem: メニューを作成し、項目を追加するためのメソッドです。サブメニューも簡単に作れます。
  • addToUi: 作成したメニューを実際のUIに反映させるために必ず呼び出します。

ADVERTISEMENT

カスタムメニューの仕組みと事前準備

Apps Scriptのカスタムメニューは、Googleドキュメントのメニューバーに独自のメニューを追加する機能です。メニュー項目をクリックすると、あらかじめ作成したスクリプト関数が実行されます。これを実現するには、スクリプトエディタでコードを書き、onOpenという特別な関数を定義します。onOpen関数はドキュメントを開くたびに自動で呼び出され、その中でメニューの作成と追加を行います。

準備として、スクリプトエディタを開く必要があります。Googleドキュメントを開いた状態で、メニューの「拡張機能」から「Apps Script」を選択します。すると、新しいタブでスクリプトエディタが開きます。ここにコードを記述します。スクリプトの実行には承認が必要な場合がありますが、その都度画面の指示に従って許可してください。

カスタムメニューを追加する手順

ここでは、基本的なカスタムメニューの追加から、サブメニューの作成、アイコンや区切り線の設定までを解説します。すべての手順はスクリプトエディタで行います。

基本のカスタムメニューを作成する

  1. スクリプトエディタを開く
    Googleドキュメントを開き、「拡張機能」→「Apps Script」をクリックしてエディタを起動します。
  2. onOpen関数を記述する
    エディタに以下のコードを貼り付けます。
    function onOpen() {
      var ui = DocumentApp.getUi();
      var menu = ui.createMenu('カスタムメニュー');
      menu.addItem('挨拶を挿入', 'insertGreeting');
      menu.addToUi();
    }
  3. メニュー項目の関数を追加する
    同じコードに、実行する関数を追加します。
    function insertGreeting() {
      var doc = DocumentApp.getActiveDocument();
      var body = doc.getBody();
      body.appendParagraph('こんにちは、世界!');
    }
  4. プロジェクトを保存し、ドキュメントを再読み込みする
    Ctrl+Sで保存し、元のドキュメントのタブに戻ってリロードします。メニューバーに「カスタムメニュー」が表示され、「挨拶を挿入」をクリックすると文書末尾に段落が追加されます。

サブメニューと区切り線を追加する

  1. サブメニューを作成する
    onOpen関数内で、menu.addSubMenu()を使います。以下のコードを参考にしてください。
    var subMenu = ui.createMenu('挿入オプション');
    subMenu.addItem('日付', 'insertDate');
    subMenu.addItem('時刻', 'insertTime');
    menu.addSubMenu(subMenu);
  2. 区切り線を追加する
    メニュー項目の間に区切り線を入れたい場合は、menu.addSeparator()を呼び出します。例えば、基本項目とサブメニューの間に追加できます。
  3. メニューを更新する
    コードを変更したら保存し、ドキュメントをリロードします。サブメニューがカスタムメニューの中に表示されることを確認してください。

メニュー項目にアイコンを設定する(応用)

標準のメニュー項目にアイコンを追加することはできませんが、代わりにHTMLのカスタムダイアログを使う方法があります。ただし、カスタムメニュー内でアイコンを直接指定する機能は用意されていません。そのため、項目名に絵文字や記号を含めることで、視覚的な区別を付けることができます。例えば、「🔔 通知を送信」のように先頭に絵文字を入れると、ユーザーにとってわかりやすくなります。

注意点とよくあるエラー

メニューが表示されない場合

最も多い原因は、onOpen関数が正しく定義されていないことです。関数名は必ず「onOpen」と書きます。大文字小文字を間違えると認識されません。また、スクリプトにエラーがあると、メニューが表示されないままになることがあります。その場合は、スクリプトエディタの「実行」メニューから「onOpen」を手動で実行してみて、エラーメッセージを確認してください。

権限の承認に関する問題

初回実行時やコードを変更した際に、権限の承認が求められます。承認しないとスクリプトが動作しません。承認画面では、「このアプリは確認されていません」と表示されることがありますが、自分で作成したスクリプトであれば問題ありません。「詳細」をクリックして「安全ではないページに移動」を選び、権限を許可してください。承認は一度行えば、同じアカウントでは次回から不要です。

トリガーの自動設定について

onOpen関数は、ドキュメントを開くたびに自動的に実行されます。しかし、スクリプトエディタで「トリガー」を設定しなくても、関数名が正しければ自動で機能します。もし正常に動作しない場合は、スクリプトエディタの左メニュー「トリガー」から、onOpen関数が「ドキュメントを開いたとき」に実行されるように手動で追加することもできます。

複数のカスタムメニューを追加する場合

複数のメニューを追加することも可能です。その場合は、onOpen関数内でcreateMenuを複数回呼び出し、それぞれに異なる名前を付けます。ただし、メニューが多すぎるとユーザーにとって煩雑になるため、必要最低限にとどめることをおすすめします。

ADVERTISEMENT

カスタムメニューで使うメソッドの比較

メソッド名 機能 使用例
createMenu(name) 新しいメニューを作成する ui.createMenu(‘ツール’)
addItem(text, functionName) メニューに項目を追加する menu.addItem(‘実行’, ‘myFunction’)
addSubMenu(subMenu) サブメニューを追加する menu.addSubMenu(subMenu)
addSeparator() 区切り線を追加する menu.addSeparator()
addToUi() メニューをユーザーインターフェースに反映させる menu.addToUi()

これらのメソッドを組み合わせることで、自由なカスタムメニューを作成できます。特にaddSubMenuは機能を階層化したい場合に便利です。区切り線は項目のグループ分けに役立ちます。

まとめ

この記事では、GoogleドキュメントのApps Scriptを使ってカスタムメニューを追加する手順を解説しました。onOpen関数にcreateMenuとaddItemを記述することで、独自のメニュー項目を作成し、任意のスクリプトを実行できるようになります。サブメニューや区切り線の追加にも対応しているため、複雑な機能も整理して配置できます。次は、メニュー項目に割り当てる関数を充実させて、実際の業務に役立つ自動化ツールを開発してみてください。例えば、定型的な書式設定やテキストの一括処理など、さまざまな応用が可能です。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。