【コピペ用】GASでよく使うコードスニペット

- JavaScript -
2022.07.26
GAS/Google Apps Script

調べては忘れ、調べては忘れ...を繰り返す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');

 

↑TOP