LoginSignup
36
22

More than 5 years have passed since last update.

スプレッドシートにカスタムメニューを追加して、拡張機能を実装する方法

Posted at

はじめに

スクリーンショット 2018-12-17 23.22.37.png
こんなやつをスプレッドシートのカスタムメニューに追加して、いろんな便利系の処理ができるという話です。実際の処理は Google Apps Script (JavaScript) で書く必要があります。

手順

以下の手順( 1-2 分くらい)で拡張するところまでいけます。

1. スプレッドシートファイルを開く

Google Apps Script を使って特定の処理を行いたいスプレッドシートを開く。

2. ツール > スクリプトエディタ を選択

スクリーンショット 2018-12-17 23.25.02.png
ツール > スクリプトエディタ を選択

3. スクリプトのプロジェクト名を入力

スクリーンショット 2018-12-17 23.32.35.png
Google Apps Script のスクリプトが開くので、 無題のプロジェクト の部分を選択して、プロジェクト名を入力。

スクリーンショット 2018-12-17 23.34.14.png
ダイアログが出るのでプロジェクト名を入力して OK を選択。

4. メニューを追加するコードを書く(コピペ)

function onOpen() {
  SpreadsheetApp
    .getActiveSpreadsheet()
    .addMenu('カレンダー連携', [
      {name: '一括登録', functionName: 'registerAll'},
      {name: '一括キャンセル', functionName: 'cancelAll'},
    ]);
}

function registerAll() {
  // 処理を書く
}

function cancelAll() {
  // 処理を書く
}

onOpen は、スプレッドシートを開いたときに呼びだされる、予約されたメソッド。 SpreadsheetApp.getActiveSpreadsheet() で連携しているスプレッドシートを取得する。 addMenu でメニューを追加している。addMenu の第 1 引数には追加するメニュー名、第 2 引数には、処理を走らせる関数名とサブメニューの名前を配列形式で指定する。

5. onOpen メソッドを実行

onOpen メソッドを実行、スクリプトに必要な許可を与える。

スクリーンショット 2018-12-17 23.58.30.png
関数を選択 > onOpen メソッドを選択

スクリーンショット 2018-12-17 23.58.41.png
▶ で実行

スクリーンショット 2018-12-18 0.00.22.png
許可を確認 を選択

スクリーンショット 2018-12-18 0.00.42.png
実行中のアカウントを選択

スクリーンショット 2018-12-18 0.00.48.png
この画面が出た場合は詳細を選択(出ない場合はスキップ)。

スクリーンショット 2018-12-18 0.00.57.png
安全ではないページに移動(出ない場合はスキップ)。本当は安全なので気にしなくて大丈夫です;

スクリーンショット 2018-12-18 0.01.10.png
許可を選択。

6. スプレッドシートを確認

スクリーンショット 2018-12-18 0.06.53.png
メニューが追加されていて、サブメニューが実行できれば OK!

次にやること

サクッとスプレッドシートにメニューを追加できました。あとは、それぞれのメソッドに実行したい処理を書きましょう。

実際の処理例は最後のセクションの関連記事をご参考ください。

グロービスのアドベントカレンダー で違う GAS ネタも書きました > 毎月 500 時間の社内ルーティンワークを GAS を使って自動化した話。こちらでも色んなサンプルを紹介してます。

関連記事

36
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
22