GASで簡単実装!スプレッドシートに2次元配列を書き込む方法

GASを使ってスプレッドシートにデータを書き込みたいんだけど、2次元配列ってどうやって扱えばいいんだろう…?
猫男
猫男
catman
catman
それならcatmanが「GASでスプレッドシートに2次元配列を書き込む方法」を教えてやろう!

GASでスプレッドシートに2次元配列を設定する方法

GASでは、スプレッドシートに簡単に2次元配列を書き込むことができる。まずは基本を見てみよう。

2次元配列を用意しよう

スクリプト内で2次元配列を作成する。


 var data = [
   ["名前", "年齢", "職業"],
   ["山田太郎", 25, "エンジニア"],
   ["鈴木花子", 30, "デザイナー"],
   ["佐藤次郎", 40, "マネージャー"]
 ]; 

このように、縦と横のデータを含んだ形で配列を用意する。

 

スプレッドシートにデータを書き込む

GASスクリプトを使って、スプレッドシートにこのデータを配置する。


 function writeDataToSheet() {
   var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
   sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
 } 

ここでは、SpreadsheetApp.getActiveSpreadsheet()で現在アクティブなスプレッドシートを取得し、sheet.getRange()で書き込む範囲を指定し、その範囲にsetValues()で2次元配列のデータをセットしている。

 

2次元配列でデータを管理するメリット

2次元配列を使うことで、データの組織化が楽になる。スプレッドシートへの書き込みも効率的になるさ。

データの視覚化と管理が簡単

2次元配列は横と縦にデータを整理するため、データ構造が簡単に視覚化できるんだ。

GASとの互換性が高い

GASのスプレッドシートAPIは2次元配列形式が基本なので、簡単にデータの入出力ができる。

 

応用テクニック:スプレッドシートに追加書き込み

すでにデータがあるスプレッドシートにさらに別のデータを書き込みたい場合も簡単だ。

既存データに新しい行を追加


 function appendDataToSheet() {
   var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
   var newData = [
     ["佐々木立", 29, "営業"]
   ];
   var lastRow = sheet.getLastRow();
   sheet.getRange(lastRow + 1, 1, newData.length, newData[0].length).setValues(newData);
 } 

このスクリプトはgetLastRow()を使って、既存のデータの最後に新しいデータ行を追加している。

 

練習問題

1. 2次元配列を作成して、スプレッドシートの3行目から書き込むスクリプトを作成してください。

 
 

解答・解説


 function practiceWrite() {
   var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
   var practiceData = [
     ["商品", "価格", "数量"],
     ["鉛筆", 100, 30],
     ["ノート", 200, 20]
   ];
   sheet.getRange(3, 1, practiceData.length, practiceData[0].length).setValues(practiceData);
 } 

ここでもsetValues()を使うが、今回は3行目からデータを書き込むため、getRange(3, 1, ...)として特定の位置に配列を書き込んでいる。行の開始位置を3にすると、3行目からデータが設定される。

なるほど!GASで2次元配列をスプレッドシートに書き込む方法がよくわかったよ!ありがとう、catman!
猫男
猫男
catman
catman
ふふ、どういたしまして。これから君のGASスキルはどんどんアップしていくはずだ!