GASでシート追加 & シート名を日付にしたい
今回行いたいのは
GASからシートの追加した後に、シート名を日付にする。
です!
▼ 最終目標はこのような形
作成したコード
今回のコードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
function NewSheet() { // 現在開いているスプレッドシートを読み込む let active_sheet = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシートに新しいシートを追加挿入 let newSheet = active_sheet.insertSheet(); // 新規追加したシートを一番左へ移動させる active_sheet.moveActiveSheet(1); // シート名は現在の日付_時分 newSheet.setName(getSheetNameDay()); // 試しに一番左のシートへ枠線を書いてみる var ass_cell01 = active_sheet.getRange('B2:E5'); // 内側の罫線(上:TRUE、下:TRUE、左:TRUE、右:TRUE) ass_cell01.setBorder(true, true, true, true, false, false); } // 現時点の日付と時間を取得する関数 function getSheetNameDay(){ // 現在の日時から、日付と時間を格納する var SheetName = Utilities.formatDate(new Date(), "Asia/Tokyo", "MMdd_hhmm"); return SheetName; } |
実行結果
実行すると
一番左に新規シートが追加され、シート名が日付_時刻
となっています。
試しに枠線を書いてみたのですが、
ちゃんと追加したシートへ書き込まれていますね。
簡単な解説
1 2 3 4 5 6 |
// スプレッドシートに新しいシートを追加挿入 let newSheet = active_sheet.insertSheet(); // 新規追加したシートを一番左へ移動させる active_sheet.moveActiveSheet(1); |
追加した後は一番左に移動させたいので、
moveActiveSheet(1)
を使用して左へ移動させています。
引数は「0」ではなく「1」です!
1 |
newSheet.setName(getSheetNameDay()); |
1 2 3 4 5 6 7 8 9 10 |
// 現時点の日付と時間を取得する関数 function getSheetNameDay(){ // 現在の日時から、日付と時間を格納する var SheetName = Utilities.formatDate(new Date(), "Asia/Tokyo", "MMdd_hhmm"); return SheetName; } |
気を付けたいのがMMとなっている箇所です。
日付は「MM」です。
最後にreturnで呼び出し元へ格納した変数を返しています。
1 2 3 4 5 6 7 |
// 試しに一番左のシートへ枠線を書いてみる var ass_cell01 = active_sheet.getRange('B2:E5'); // 内側の罫線(上:TRUE、下:TRUE、左:TRUE、右:TRUE) ass_cell01.setBorder(true, true, true, true, false, false); |
試しに追加したシートへ書き込めるかどうかのテストで
書いてみました。
シートの追加とシート名の変更が出来ました!
定期実行などの際はこの方法でシートの追加
を行えますね!
以上です。
最後までお読みいただきありがとうございました!