Googleドキュメントのスプレッドシートは、いわゆる表計算を行うためのものです。多数のセルが縦横にずらりと並び、それぞれに値を記入していきます。これをスクリプトで自動化出来れば、ずいぶんと役に立つものが作れそうですね。
スプレッドシートを利用するには、まずこのドキュメントがどういう構造になっているか、から理解しなければいけません。また、それぞれの要素をGoogle Apps Scriptから利用するのであれば、その要素を扱うためのオブジェクトも用意されているはずですね。では、これらの基本的な構成要素について整理しておきましょう。
スプレッドシートアプリケーション――Googleドキュメントのアプリケーション本体ですね。これは、Google Apps Scriptでは「
SpreadsheetApp」というオブジェクトとして用意されています。
スプレッドシート――スプレッドシートのドキュメント本体です。これは「
Spreadsheet」というオブジェクトとして用意されています。
シート――スプレッドシートには、何枚ものシートがあります。それぞれのシートは「
Sheet」というオブジェクトとして扱うことができます。
レンジ――これは「セルの範囲」を示すものです。これは「
Range」というオブジェクトとして用意されます。
――以上です。「あれ? 肝心の『セル』がないぞ?」と思ったかも知れません。確かに、私たちがスプレッドシートを利用する際には、1つ1つのセルを意識して操作をします。が、Google Apps Scriptの世界では「セル」を示すオブジェクトはありません。すべては「セルの範囲」を示す
Rangeによって管理されます。個々のセルは、「1つだけが選択された
Range」というわけです。
では、これらのオブジェクトを取得する方法を考えましょう。操作の基本は、「
SpreadsheetApp」から始まります。これは、スプレッドシートアプリケーションのオブジェクトでしたね。この中に用意されているメソッドを呼び出すことで、その他の要素を得ることができます。まずは、「選択された要素」を得る、以下のメソッドから覚えていきましょう。
・選択されたスプレッドシートを得る変数 = SpreadsheetApp.getActiveSpreadsheet();
・選択されたシートを得る変数 = SpreadsheetApp.getActiveSheet();
変数 = 《Spreadsheet》.getActiveSheet();
多くのマクロは、「現在、開いているシートのセルを操作する」というようなものになるでしょう。従って、スクリプトでまず行うのは「現在選択されているシートのオブジェクトを得る」ということです。上記のメソッドで、まずは「今、開いているシートの
Sheetオブジェクト」を取得します。
次に行うべきは、「レンジ」の取得です。これにはさまざまなやり方があるのですが、まずは「指定したセルの
Rangeを得る」ということを考えましょう。
変数 = 《Sheet》.getRange( 行番号 , 列番号 );
変数 = 《Sheet》.getRange( レンジの指定 );
getRangeには、2通りの指定の仕方があります。1つは、行と列を数字で指定するやりかた。例えば、「2行目の左から5列目のセル」なら、「
getRange(2,5)」というように指定してやればいいのです。これは簡単ですね。
この他、Googleドキュメントの関数などで用いられる「A1」といったやり方で指定することもできます。例えば、「
getRange("A1")」とすれば、シートの一番左上のセルを示すRangeが得られるわけです。――とりあえず、この2つの
getRangeを覚えておけばよいでしょう。