CodeZine(コードジン)

特集ページ一覧

Google Apps ScriptでGoogleドキュメントのスプレッドシートを操作する

Google Apps ScriptによるGoogleドキュメントの操作(1)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/04/21 14:00

目次

入力ボックスを使う

 続いて、ユーザーから簡単な入力をしてもらうスクリプトを考えてみましょう。myFunctionを次のように修正してください。そしてスクリプトを実行してみましょう。

function myFunction() {
  var value = Browser.inputBox("名前を入力:");
  if (value != ""){
    Browser.msgBox(value + "さん、こんにちは!");
  } else {
    Browser.msgBox("何か入力してください。");
  }
}
図6 名前を入力すると、メッセージが表示される。
図6 名前を入力すると、メッセージが表示される。

 今回は、実行するとテキストを入力するフィールドがあるパネルが表示されます。ここにテキストを書いて[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);
}
図7 実行すると、A1セルの値の2倍をA2セルに書き出す。
図7 実行すると、A1セルの値の2倍をA2セルに書き出す。

 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」で取得・変更ができます。これにより、指定したレンジにあるセルの値を操作できるのです。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:速習Google Apps Script

著者プロフィール

  • 掌田 津耶乃(ショウダ ツヤノ)

    三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。 ※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開中。またGoogle+プロフィールはこちら。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5