【コピペ用】GASでよく使うコードスニペット
- JavaScript -
2022.07.26
調べては忘れ、調べては忘れ...を繰り返すGoogle Apps Script/GAS。
よく使うGASのコードスニペットをメモしておきます。
マルっとコピーできるようにしているので良ければ使ってください。GASというか単純なJavaScriptのスニペットも混ざっていますがお気になさらず...
ー もくじ ー
【コピペ】よく使うGAS/Google Apps Scriptスニペット
スプレッドシート全体取得 → 特定シート取得 → 特定列を配列で取得
Google Apps Script// スプレッドシート全体取得(現在のアクティブシートの場合)
let ss = SpreadsheetApp.getActiveSpreadsheet();
// ID指定でスプレッドシートを取得する場合
let ss = SpreadsheetApp.openById('xxx');
// 特定シート取得
let xxxSheet = ss.getSheetByName('シート名');
// 特定列を配列で取得
let xxxLastRow = xxxsheet.getLastRow();
// A1セルから最終行まで1列まるっと配列化
let xxxList = xxxsheet.getRange(1, 1, xxxLastRow).getValues().flat();
上記最終行の補足メモ:
Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
たとえば1行目はヘッダーだとして、A2セルから1列を配列で取得したい場合は以下。
xxxsheet.getRange(2, 1, xxxLastRow).getValues().flat()
C2セルから1列を配列で取得したい場合は以下。
xxxsheet.getRange(2, 3, xxxLastRow).getValues().flat()
新規スプレッドシート作成 → シート名変更
Google Apps Scriptlet fileName = 'xxx';
let newSheetName = 'yyy';
let newSs = SpreadsheetApp.create(fileName);
// 1枚目シート名変更
let newSheet = newSs.getSheets()[0];
newSheet.setName(newSheetName);
新規スプレッドシート作成 → フォルダ移動
作成して移動して、シートを返す関数。実質的には、フォルダへ移動させたあとにマイドライブ内から削除する動き。
Google Apps Script// 新規スプレッドシートの作成・フォルダ移動
function createNewSpreadSheet(newSsName) {
//新規スプレッドシートをマイドライブに作成
let ss = SpreadsheetApp.create(newSsName);
// GoogleドライブのファイルオブジェクトID取得
let file = DriveApp.getFileById(ss.getId());
// 格納先フォルダのURLに含まれるID
let id = 'xxx';
// 格納先へファイル追加
DriveApp.getFolderById(id).addFile(file);
// 移動後はマイドライブから削除
DriveApp.getRootFolder().removeFile(file);
return ss;
}
配列の空白削除
["a", "b", "", "d", "", "f"]の""を削除したいようなとき。
Google Apps ScriptxxxList = xxxList.filter(v => v);
配列内の重複を削除
["a", "b", "a", "a", "c", "d"]の重複する"a"をひとつだけにしたいとき。
Google Apps ScriptxxxList = Array.from(new Set(xxxList));
今日の日付を"yyyymmdd"で取得
ファイル名やシート名に使いたいときとか。
Google Apps Scriptlet date = new Date();
today = Utilities.formatDate( date, 'Asia/Tokyo', 'yyyyMMdd');