入力ボックスを使う
続いて、ユーザーから簡単な入力をしてもらうスクリプトを考えてみましょう。myFunctionを次のように修正してください。そしてスクリプトを実行してみましょう。
function myFunction() {
var value = Browser.inputBox("名前を入力:");
if (value != ""){
Browser.msgBox(value + "さん、こんにちは!");
} else {
Browser.msgBox("何か入力してください。");
}
}
今回は、実行するとテキストを入力するフィールドがあるパネルが表示されます。ここにテキストを書いて[OK]を押すと、「○○さん、こんにちは!」と、入力したテキストを使って返事が返ってきます。何も入力しなければ「何か入力してください」と表示されます。
ここでは、Browserオブジェクトの「inputBox」というメソッドを使ってます。これは次のような形で呼び出します。
変数 = Browser.inputBox( メッセージ );
inputBoxは、引数に渡したメッセージと入力フィールドをもったパネルを表示します。そしてOKしてパネルを閉じると、入力したテキストを返します。これで、簡単な入力と出力(表示)ができるようになりました。ごく簡単なスクリプトならすぐにでも作れそうですね!
選択されたセルの利用
ユーザーとの基本的なやりとりができるようになったところで、いよいよ実際にスプレッドシートを操作してみることにしましょう。まずは、シートの基本となる「セル」の利用についてです。特定のセルの値を取得したり変更したりといったことを行ってみましょう。
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell= sheet.getRange("A1");
var value = cell.getValue();
var cell2 = sheet.getRange("A2");
cell2.setValue(value * 2);
}

Googleドキュメントのスプレッドシートは、複数のオブジェクトとしてGoogle Apps Scriptでは扱われます。基本的なオブジェクト類を整理すると次のようになります。
| オブジェクト名 | 概要 |
| SpreadsheetApp | スプレッドシートアプリケーションのオブジェクトです。Googleスプレッドシートのアプリケーションそのものに関するメソッドなどが用意されます。 |
| Spreadsheet | アプリケーションで開いているスプレッドシートのオブジェクトです。 |
| Sheet | スプレッドシートにあるシートのオブジェクトです。1つのスプレッドシートに複数のシートを作成できますので、どのシートのオブジェクトを利用するかを考える必要があります。 |
| Range | レンジ(シート内の一定の範囲)を示すものです。これは1つのセルからシートのセル全体をカバーするものまで自由に作成でき、これを通してセルにアクセスを行えます。 |
セルは、Rangeというオブジェクトを使うことで利用できるようになりますが、このRangeを利用するためには、一定の手続に従う必要があります。
var ss = SpreadsheetApp.getActiveSpreadsheet();
まず、SpreadsheetAppオブジェクトにある「getActiveSpreadsheet」で、現在選択されているスプレッドシートを取得します。このメソッドは、現在選択されているスプレッドシートのSpreadsheetオブジェクトを取得するメソッドです。
var sheet = ss.getSheets()[0];
Spreadsheetオブジェクトから、1ページ目のスプレッドシートのSheetオブジェクトを取得します。スプレッドシートに用意されているシートは「getSheets」で取得できます。このメソッドは、Sheetオブジェクトの配列のようになっているため、getSheets()[0]というようにして特定のSheetオブジェクトを取り出します。ここでは[0]として1枚目のシートのSheetを得ています。
var cell= sheet.getRange("A1");
var value = cell.getValue();
var cell2 = sheet.getRange("A2");
cell2.setValue(value * 2);
Sheetが取得できたら、セルを得るのは簡単です。Sheetの「getRange」メソッドを呼び出すことで、特定のセル範囲を扱うためのRangeオブジェクトが得られます。ここでは、引数に"A1","A2"というように指定することで、A1セルおよびA2セルのRangeを取得しています。
こうして得られたRangeの値は、「getValue」「setValue」で取得・変更ができます。これにより、指定したレンジにあるセルの値を操作できるのです。

