【第2回】スプレッドシートを自動で動かす〜getRangeとsetValueをマスター〜

前回はGASの基本を学びました。今回は、いよいよGoogle Apps Script(GAS)を使ってスプレッドシートを自動で操作してみましょう。ここを理解すると、日報や集計、自動記録などあらゆる業務を自動化できるようになります。

基本: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連携」にスムーズにつながります。

シリーズ記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次