2012年7月24日火曜日

指定した範囲(Range)のデータを全て取得する

指定したセル範囲のデータを全て取得するには Sheet クラスの getValues メソッドを用いる。
  
  
【構文】
RangeObject.getValues()
  
戻り値 : 配列型。行、列の二次元配列を返す。インデックスは行、列ともゼロから始まる。
  
  
まず、下図のように、値の入力されている全ての範囲を取得するサンプルコードを以下に記す :
  
  
  
【例1】
function GetValues1() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var objSheet = objSpreadsheet.getActiveSheet();
  var objRange = objSheet.getDataRange();
  var varValues = objRange.getValues();
  Browser.msgBox(varValues[2][3]);
}
  
  
例1 の場合はセル A1 の値が配列のインデックス (0, 0) に格納されているので、インデックス
(2, 3) は 3 行 4 列、すなわち、セル D3 の値ということになるので、メッセージボックスに表示
される値は「d3」。
  
  
次に、下図のように B3:D6 の範囲を対象としたサンプルを以下の示す :
  
  
  
【例2】
function GetValues2() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var objSheet = objSpreadsheet.getActiveSheet();
  var objRange = objSheet.getRange("B3:D6");
  var varValues = objRange.getValues();
  Browser.msgBox(varValues[2][1])
}
  
  
この例の場合は、セル B3 の値が配列のインデックス (0, 0) に格納されるので、インデックス
(2, 1) はセル B3 を起点にして 3 行 2 列、すなわち、セル C5 になるので、表示される値は
「c5」となる。

0 件のコメント:

コメントを投稿