続いて、セルに値を入力してみよう。
var {戻り値}={Rangeオブジェクト}.setValue({入力値});
値を入力するにはリスト2のように記述する。
function mysetValueFunction() { var sheet=SpreadsheetApp.getActiveSheet(); sheet.getRange(11,1).setValue("松尾芭蕉"); }
11行目の1列目に「松尾芭蕉」を追加した(3行目)。実行結果は図4のようになるだろう。
Rangeオブジェクトには、さらに相対位置で1つのセルを選択できるgetCellメソッドがある。
var {Rangeオブジェクト}={Rangeオブジェクト}.getCell({行番号},{列番号})
{行番号}{列番号}の指定は相対位置となる。例えば、図1から「猿飛佐助」の値を取得するには、リスト3のように書く。
function mygetCellFunction() { var sheet=SpreadsheetApp.getActiveSheet(); var range=sheet.getRange("A2:A10"); var cell=range.getCell(5,1).getValue(); Browser.msgBox(cell); }
選択している範囲は「A2:A10」であるため、「猿飛佐助」のセルは「A2」を起点として5行目に当たるということだ(4行目)。
実行すると、図5のように表示される。
ここでは、「5,1」のように指定したが、この部分を変数にし、後の連載で紹介するfor文などで、変数を変えていくことで値の取得や入力を一気に済ますことができるので、覚えておいてほしい。
続いて、図6のような表を作成する。この表から行数や列数を取得する方法を解説する。行数や列数を取得できると、先ほど触れたfor文を使うときに便利なので、ぜひ覚えておいてほしい。
var {戻り値}={Rangeオブジェクト}.getNumRows()
図6から行数を取得するにはリスト4のように記述する
function mygetNumRowsFunction() { var sheet=SpreadsheetApp.getActiveSheet(); var selectRange=sheet.getRange("A1:B11"); var num=selectRange.getNumRows(); Browser.msgBox(num); }
選択された範囲をA1〜B11と指定して(3行目)、getNumRowsで行数を取得している(4行目)。
実行すると図7のようになる。
var {戻り値}={Rangeオブジェクト}.getNumColumns()
リスト4の「getNumRows()」を「getNumColumns()」と書き換えて実行すると、図8のように表示される。
今回は、ここまでで終わりだ。次回は、さらにセルについて扱う。セルの背景色や文字の色、サイズを変更したり、データを3桁区切りで表示したり、けい線を引いたり、セルを結合したりするなど、いろいろな「書式」(ここでは表現方法のこと)の設定について解説していくので、お楽しみに。
PROJECT KySS 薬師寺 国安(やくしじ くにやす)
1950年生まれ。フリーVBプログラマー。高級婦人服メーカーの事務職に在職中、趣味でVBやActiveXに取り組み、記事を執筆。2003年よりフリー。.NETやRIAに関する執筆多数。Windowsストアアプリも多数公開中(約270本)。
Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。
Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。
Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。
PROJECT KySSは、1997年に薬師寺聖と結成したコラボレーション・ユニット
Copyright © ITmedia, Inc. All Rights Reserved.