Google Apps Script(以下GAS)でSpreadSheetの書き込み系の処理の基本を解説します。
- GASでSpreadSheetの扱い方の基本がわかる
- GASでSpreadSheetの書き込み系処理の基本がわかる
範囲の指定や読み込み系処理の基本は、こちらで解説しているので参考にしてください。
【GAS】Google Apps ScriptでSpreadSheetの範囲指定とデータ取得系操作の基本を解説
モグモグさん
公式のドキュメントはこちらにありますので、参考にしてください。
SpreadSheetからApps Scriptを開く
任意のSpreadSheetから、Apps Scriptを開きます。
エディタ画面が開けばOKです!
ワークブックとシートを指定し取得
お約束のコードでワークブックとシートを指定して取得します。
const activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); // 現在のSpreadSheetを取得
const sheet = activeSpreadSheet.getSheetByName('テスト'); // シート(SpreadSheetの下のタブ名を指定)
ワークブックとシートの指定の方法は複数あるので、気になる方はこちらの記事をどうぞ〜。
【GAS】Google Apps ScriptでSpreadSheetのワークブックを指定する方法を解説 【GAS】Google Apps ScriptでSpreadSheetのシートを指定する方法を解説
特定のセルに値を書き込む
setValue
を使う
setValue
でセルに値を書き込むことができます。
sheet.getRange("A1").setValue("テスト");
実行結果
A1に「テスト」が書き込まれていることを確認しましょう。
特定の範囲に複数のデータを書き込む
特定の範囲に複数のデータを書き込む場合は、setValues
を使います。
setValues
には、2次元配列を渡します。
2次元配列の例
// 2次元配列 = 配列の中に配列がある構造
[
["野球", "サッカー"],
["バスケ", "バレー"],
["テニス", "陸上"]
]
setValues
を使う
こちらの書き方で、2次元配列の値を全て書き込めます。
頻繁に使いますので覚えておくと良いと思います。
sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
const values = [["野球", "サッカー"],["バスケ", "バレー"],["テニス", "陸上"]];
sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
実行結果
A1:B3に上記のスポーツがそれぞれ書き込まれているか確認しましょう。
最終行の次の行に値を書き込む
最終行の次の行に値を書き込むには、主に2つ方法があります。
appendRow
を使う
sheet.appendRow(["ソフトボール", "剣道"]);
実行結果
値が存在する行の次の行に、追加したスポーツが書き込まれているか確認しましょう。
appendRowは簡単に使えますが、行を追加するだけなので2次元配列を追加するようなことはできません。
そういったケースでは、次で紹介するgetLastRowで最終行を取得し、範囲を指定しsetValuesを呼びます。
getLastRow
を使う
const values = [["ソフトボール", "剣道"],["柔道", "ゴルフ"]];
const lastRow = sheet.getLastRow(); // 最終行を取得
sheet.getRange(lastRow+1, 1, values.length, values[0].length).setValues(values); // 最終行に1を追加して、最終行の次の行を指定
実行結果
値が存在する行の次の行に、追加したスポーツが書き込まれているか確認しましょう。
まとめ
モグモグさん
ここまでで、GASでSpreadSheetを読み込んで範囲を指定し、値を書き込む基本は理解できると思いますのでユースケースに合わせて利用してみてください!