前回はGASの基本を学びました。今回は、いよいよGoogle Apps Script(GAS)を使ってスプレッドシートを自動で操作してみましょう。ここを理解すると、日報や集計、自動記録などあらゆる業務を自動化できるようになります。
Contents
基本:A1セルに文字を自動入力する
まずは「セルに文字を書き込む」最も基本的な操作から始めましょう。
function writeToSheet() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート1");
sheet.getRange("A1").setValue("こんにちは、GAS!");
}
実行すると、A1セルに「こんにちは、GAS!」と自動で入力されます。これがGASでスプレッドシートを操作する最も基本的な命令です。
応用①:今日の日付を自動で書き込む
「今日の日付」を自動で入力するには、JavaScriptのnew Date()を使います。
function writeDate() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange("A2").setValue(new Date());
}
実行するたびに、A2セルに現在の日付と時刻が自動入力されます。日報や出勤簿、進捗記録にとても便利です。
応用②:複数行にまとめて書き込む(setValues)
複数のデータを一気に書き込む場合は、setValues()を使います。大量データを扱うときはこれが基本です。
function writeMultiple() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = [
["名前", "担当", "日付"],
["山田", "経理", new Date()],
["佐藤", "営業", new Date()]
];
sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}
setValues()は、配列の形でデータをまとめて書き込む関数です。
1セルずつsetValue()を繰り返すよりも処理速度が数十倍速いため、業務データの自動登録などに最適です。
応用③:最終行を自動検出して追記する
新しいデータを下にどんどん追加したい場合は、getLastRow()を使って「最終行の次」に書き込みます。
function appendRow() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const lastRow = sheet.getLastRow(); // 最終行を取得
sheet.getRange(lastRow + 1, 1).setValue("新しいデータ");
}
これで、既存データの一番下に自動で新しい行が追加されます。フォーム連携やログ記録などで頻繁に使われる方法です。
応用④:条件つきで自動入力(空欄チェック)
「空欄のときだけ文字を入れる」などの条件付き処理も簡単にできます。
function writeIfEmpty() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const cell = sheet.getRange("B2");
if (cell.getValue() === "") {
cell.setValue("未入力");
}
}
このようにif文と組み合わせることで、空欄チェックや自動エラーメッセージの挿入など、実務で役立つ処理が可能になります。
まとめ:GASで「表を動かす」第一歩
今回紹介したgetRange()やsetValue()は、GASの基本中の基本。 これが使えるようになると、次回以降の「メール自動送信」や「AI連携」にスムーズにつながります。
