Spreadsheet

【スプレッドシート】メニューを追加する方法!

 

今回はスプレッドシートにメニューを追加し、作成したスクリプトを簡単に実行できる仕様にする方法を紹介します!

メニューとは左上の「ファイル、編集、...ヘルプ」のことを指します。

今回はここは人気記事である勤怠管理表の打刻機能をメニューに追加します!

メニュー

 

 
 

完成イメージ

 

実際のスクリプト

今回はonOpenで、スプレッドシートを開いた時に追加機能が表示されるようなトリガーにしてあります。

//onOpenでスプレッドシートを開いた時に表示させるようにする
function onOpen() { 
 var ui = SpreadsheetApp.getUi(); 
 var menu = ui.createMenu("追加機能"); //メニュー名 
 menu.addItem('業務開始','setStartTime'); //表示名、スクリプト名 
 menu.addItem('業務終了', 'setEndTime'); //表示名、スクリプト名 
 menu.addToUi(); 
}

//ここからは打刻の機能(勤怠管理と同じスクリプト) 
function setStartTime() { 
 var sheet = SpreadsheetApp.getActiveSheet();
 var lastRow = sheet.getLastRow();
 var formatDate = Utilities.formatDate(new Date(), "JST","yy/MM/dd");
 sheet.getRange(lastRow + 1,1).setValue(formatDate);

 function padding(num) { 
 return ('00' + num).slice(-2) } 

 function formattedCurrentTime() { 
 var now = new Date() 
 return now.getHours() + ':' + padding(now.getMinutes()) 
 }

 var day = new Date().getDate();
 sheet.getRange(lastRow + 1,2).setValue(formattedCurrentTime());
 }

 function setEndTime() { 
 var sheet = SpreadsheetApp.getActiveSheet(); 
 var lastRow = sheet.getLastRow(); 

 function padding(num) { 
 return ('00' + num).slice(-2) 
 }  

 function formattedCurrentTime() { 
 var now = new Date() 
 return now.getHours() + ':' + padding(now.getMinutes()) 
 } 
 var day = new Date().getDate(); 
 sheet.getRange(lastRow,3).setValue(formattedCurrentTime()); 
}
 

function onOpenでスプレッドシートを開いた時に表示するようになります。

createMenu("メニュー名")でメニューを追加します。

addItem("アイテム名", "スクリプト名")でメニューの中に様々な機能を追加することができます!

以上、スプレッドシートでメニューの追加方法です。GASで様々なスクリプトを使用している人にとっては、利便性が向上するのではないでしょうか。

 

G suiteを導入しているのであれば、Google Apps Scriptの活用次第で業務効率を大幅にアップすることが出来ます。

Google Apps Scriptのコードの書き方について学習したい方はこちらの本が便利です!

>Google Apps Scriptおすすめの本はこちら!