Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

スクリーンショット 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 を使って自動化した話。こちらでも色んなサンプルを紹介してます。

関連記事

tanabee
Vice President, RPG TEC. Google Developers Expert / Licensed Scrum Master
https://tanabee.github.io
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした