【GAS】スプレッドシートの値を取得する
値の取得法色々
記載範囲すべての値を取得する
function myFunction() { //アクティブなシートを取得 let sheet = SpreadsheetApp.getActiveSheet(); //記載範囲すべてを取得(Object) let range = sheet.getDataRange(); //範囲の値を取得(2次元配列) let values = range.getValues(); Logger.log(values); }
getDataRange()は記載のあるすべての範囲を取得します。
上記の表なら A1:C10 の範囲が取得されます。
getValues()は範囲の値を2次元配列で取得します。
上記の表だと
[[1.0, とくに, いち], [2.0, いみは, にい],...... [10.0, ……, じゅう]]
となります。
function myFunction() { //アクティブなシートを取得 let sheet = SpreadsheetApp.getActiveSheet(); //記載範囲すべてを取得(Object) let range = sheet.getDataRange(); //範囲の値を取得(2次元配列) let values = range.getValues(); Logger.log(values[0][1]);//結果:いみは }
となります。
特定のセルの値を取得
function myFunction() { //アクティブなシートを取得 let sheet = SpreadsheetApp.getActiveSheet(); //特定のセルを取得 //getRange(row, column) let range1 = sheet.getRange(1, 2); //getRange(a1Notation) let range2 = getRange('B1'); //値を取得 let values1 = range1.getValue(); let values2 = range2.getValue(); Logger.log(values1);//結果:とくに Logger.log(values2);//結果:とくに }
getRange(row, column)は直接位置を指定します。
indexではないので、A1が(1,1)となります。
getRange(a1Notation)
また、getValue()対象が1つの時に使うものになります。
function myFunction() { //アクティブなシートを取得 let sheet = SpreadsheetApp.getActiveSheet(); //記載範囲すべてを取得(Object) let range = sheet.getDataRange(); //1つの値を取得 let values = range.getValue(); Logger.log(values);//結果:1.0 }
getDataRange()(範囲)に対してgetValue()を使用すると一番左上の情報が取得されます。
function myFunction() { //アクティブなシートを取得 let sheet = SpreadsheetApp.getActiveSheet(); //特定のセルを取得 let range = sheet.getRange(1, 2); //範囲の値を取得(2次元配列) let values = range.getValues(); Logger.log(values);//結果:[[とくに]] }
getRange(row, column)に対してgetValues()を使用すると[0][0]にしか値のない、あまり意味のない2次元配列が出来上がります。
範囲を指定して値を取得する
function myFunction() { //アクティブなシートを取得 let sheet = SpreadsheetApp.getActiveSheet(); //範囲を取得 //getRange(row, column, numRows) let range1 = sheet.getRange(1, 2, 2); //取得範囲:B1:B2 //getRange(row, column, numRows, numColumns) let range2 = sheet.getRange(1, 1, 2, 3); //取得範囲:A1:C2 //getRange(a1Notation) let range2 = sheet.getRange("A1:C2"); //取得範囲:A1:C2 let values1 = range1.getValues(); let values2 = range2.getValues(); let values3 = range3.getValues(); Logger.log(values1); Logger.log(values2); Logger.log(values3); }
getRange(row, column, numRows)行・列・高さ を指定します。
getRange(row, column, numRows, numColumns)行・列・高さ・幅 を指定します。
getRange(a1Notation)A1表記またはR1C1表記で指定します。
getRange(a1Notation)ではシートではなくスプレッドシート(Excelでいうブック)に使用することでシートを指定して取得することができます。
function myFunction() { //アクティブなスプレッドシートを取得 var ss = SpreadsheetApp.getActiveSpreadsheet(); //範囲を取得 let range = ss.getRange("シート2!A1:A3"); //範囲の値を取得(2次元配列) let values = range.getValues(); Logger.log(values); }