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

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


はじめに

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


関連記事

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)