GoogleスプレッドシートにGoogle apps scriptを使ってカスタムメニューを追加

  Google apps script

前回「GoogleスプレッドシートでGoogle apps scriptを使う」で簡単なスクリプトを書いたので、今回はスプレッドシートにメニューを追加してそこからスクリプトを実行できるようにしてみます。

前回書いたスクリプト(プロジェクト)にコードを追加していきます。
「ツール」から「スクリプトエディタ」を起動します。

 

前回までのスクリプト
function myFunction() {
  // スプレッドシートを取得
  var mySheet = SpreadsheetApp.getActiveSheet();

  // シートのA1から値を取得
  var valueA1 = mySheet.getRange("A1").getValue();
  // シートのA2にa1valueを出力
  mySheet.getRange("A2").setValue(valueA1);
}

 

新たにスクリプトを追加

スプレッドシートのメニューバーにカスタムメニューを追加する場合、スプレッドシートを開いたタイミングでスクリプトを実行させたいので「onOpen()関数」使って書きます。

function onOpen(){
  var mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var myMenuEntries = [];
  myMenuEntries.push({name: "myFunctionの実行", functionName: "myFunction"});
  mySpreadsheet.addMenu("追加メニュー", myMenuEntries);
}

function myFunction() {
  // スプレッドシートを取得
  var mySheet = SpreadsheetApp.getActiveSheet();
 
  // シートのA1から値を取得
  var valueA1 = mySheet.getRange("A1").getValue();
  // シートのA2にa1valueを出力
  mySheet.getRange("A2").setValue(valueA1);
}

 

ファンクションの呼び出し

カスタムメニューの中の「ファンクション呼び出し用の名前」と「ファンクションの指定」は配列で設定します。
「array = [ {name: “カスタムメニュー名”, functionName: “実行するファンクション名”}, ];」

4行目

myMenuEntries.push({name: "myFunctionの実行", functionName: "myFunction"});

 

ファンクションの呼び出しは複数設定可能です。

myMenuEntries.push({name: "myFunction1の実行", functionName: "myFunction1"});
myMenuEntries.push({name: "myFunction2の実行", functionName: "myFunction2"});
myMenuEntries.push({name: "myFunction3の実行", functionName: "myFunction3"});

 

カスタムメニューの名前は「addMenu(”名前”, “ファンクションをセットした配列”)」で設定します。

5行目

mySpreadsheet.addMenu("追加メニュー", myMenuEntries);

 

コードを書いたら、一度スクリプト(プロジェクト)を保存します。
保存したらスプレッドシートを開き直して動作を確認します。

googleappsscript-11

メニューバーにカスタムメニューが追加されています。
セル「A1」に文字列を入力してスクリプトを実行させてみます。

 

googleappsscript-12

前回と同じようにセル「A1」に入力した文字列がセル「A2」に表示されれば完了です。

 

  Google apps script     by