目的
テンプレートのコピー、コピーしたシートの名前を変える、という手順が面倒で一回で済ませたいと思って作りました。今回は「ファイル」等と同じ階層へメニューを追加する方法をとりました。
前提知識
パソコン操作ができれば作れると思います。そのくらいで実装できる簡単な内容です。
実装手順
// シートのコピーを行う処理
function sheetCopy() {
var name = Browser.inputBox('新しいシート名を入力してください', Browser.Buttons.OK_CANCEL);
if (name != 'cancel') {
var sheet = SpreadsheetApp.getActiveSheet();
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet().setName(name);
}
}
// メニューへ追加する処理
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menus = [{name: "シートを複製", functionName: "sheetCopy"}];
ss.addMenu("custom menu", menus);
}
保存するときにプロジェクトの名前を求められます。好きな名前をつけてください。
機能拡張について
シートの複製部分をライブラリ化し、各スプレッドシートは最低限の記述で済ませる方法もあります。今回はハードルを低くするために一つのスプレッドシートの中で済ませました。
興味のある方はライブラリにする方法を調べて実装してみてください。