エンジニアはこわくない

雑記とかエンジニアっぽい内容を好きなように書く場所

GAS(google app script)を使ってスプレッドシートにメニューを追加する方法


スポンサーリンク

f:id:tsujitaku50:20170117213517p:plain

こんにちは、つじたく(@Tsuji_Taku50)です。

GAS(google app script)を使ってスプレッドシートに独自のメニューを追加することができるので

今日はその方法を紹介します。

この独自メニューを使えば、「特定のメニューを押したときに実装した処理を行う」といったことが可能になるので

ものすごく便利です。

スプレッドシートに独自メニュー追加

onOpen関数

GAS(google app script)にはonOpen関数という関数が初めから用意されています。

このonOpen関数は「スプレッドシートを開いた瞬間に処理をする」という関数です。

function onOpen(){
 // スプレッドシートを開いた瞬間に実行する処理を書く 
}

このように書きます。

メニュー追加

メニュー追加にも何種類か方法はあるみたいなのですが、実際に僕が使っている方法を紹介します。

完成系はこちらです。

f:id:tsujitaku50:20170221215337g:plain



ソースコードは以下になります。

function onOpen() {
  var utils = [
    {name: '5文字の乱数生成',functionName: 'setRandom5'},
    null,
    {name: '10文字の乱数生成',functionName: 'setRandom10'},
  ];

  // スプレッドシート情報取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  sheet.addMenu('乱数生成', utils);
}

function setRandom5() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  sheet.getActiveSheet().getActiveRange().setValue(underscoreGS._randomString(5))
}

function setRandom10() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  sheet.getActiveSheet().getActiveRange().setValue(underscoreGS._randomString(10))
}

上記の例は

  • 「5文字の乱数生成」メニューを押すと、5文字の乱数を生成する

  • 「10文字の乱数生成」メニューを押すと、10文字の乱数を生成する

というものです。

まずsheet変数に現在の開いているスプレッドシート情報を格納します。

次にaddMenu関数でメニューを追加します。

今回なら「乱数生成」という名前のメニューを追加しています。

「乱数生成」という名前のメニューの中に「5文字の乱数生成」「10文字の乱数生成」というサブメニューを追加しています。

サンプルも用意したので、良かったら試してみて下さい。 docs.google.com

まとめ

もっと複雑な処理もできますが、これさえ理解しておけば後は応用が効くと思います。

自分独自にメニューを追加できるのはすごく便利なので使ってみて下さい。

おわり!!