libro
www.tuyano.com
初心者のためのGoogle Apps Scriptプログラミング入門

Google Apps Scriptの基本を覚える (3/7)

作成:2011-06-15 09:23
更新:2011-11-04 15:41

■スクリプトを動かそう!

では、スクリプトを実際に書いて動かしてみることにしましょう。スクリプトエディタでは、デフォルトで以下のようなものが書かれています。
function myFunction() {
    
}
見ればわかるように、これは「myFounction」という名前の関数の定義です。Google Apps Scriptでは、スクリプトは「関数として定義する」のが基本です。ここに必要な処理を書いて実行すればいいわけですね。では、ごく単純なサンプルを書いてみましょう。
function myFunction() {
    alert("こんにちは!");
}
真ん中に1文を追記しただけです。おなじみのalert関数ですね。では、これで実行してみましょう。作成した関数の実行は、<実行>メニューから行えます。このメニューには、現在定義されている関数が一覧で表示されるようになっています。ここから、<myFunction>メニューを選べば、作った関数が実行できるわけですね。

この他、メニューの下にあるツールバーにある「実行する関数を選択」ポップアップから「myFunction」を選択しておけば、その左側にある実行ボタン(三角の、ビデオのプレイボタンみたいなアイコンのやつ)をクリックするだけで実行させることもできます。ちなみに、そのとなりのハエのアイコンは「デバッグモードで実行」です。

さて、実行するとどうなったでしょうか。やってみると、アラートは表示されず、代りにウインドウ上部に以下のようなメッセージが表示されます。
ReferenceError: 「alert」が定義されていません。 (行 2)Dismiss
alertが定義されていない? だってWebブラウザに組み込み済みの関数でしょ? 一体、どうなってるの? と?マークがぐるぐる頭の周りを回ったことと思いますが、これがGoogle Apps Scriptのスクリプトを書くときに最初にぶち当たる壁です。

Google Apps Scriptでは、「Webブラウザに用意されているJavaScriptの機能」は一切使えません。alertもなし。windowも、navigatorも、document.getElementByIdも全部ありません。一体どうなってるんだ?と思ったでしょう。が、それはGoogle Apps Scriptというものを「勘違い」しているからです。

Google Apps Scriptは、JavaScriptのスクリプトです。JavaScriptというのは、普通、Webブラウザというクライアント環境の中で動くもので、Webブラウザやそこに表示されているドキュメントの内容をDOMで操作するのに用います。そこで、思うわけです。「じゃあ、Google Apps ScriptもWebブラウザの中で動いているんだろう」と。が、実はこれが大きな間違いなのです。

Google Apps Scriptは、クライアント(Webブラウザ)の中で実行されるものではありません。スクリプトは、すべて「サーバー」で実行されるのです。エディタで書いたスクリプトは、そのままサーバーに送信され保管されます。そして実行する際には、サーバーに保管されたスクリプトが、サーバーの中で実行されるのです。

もちろん、必要に応じてそこからクライアント側(つまりWebブラウザ)にAjax通信でやり取りを行い、表示を操作したりすることもできます。が、「基本はサーバーサイド」です。クライアント側の機能は一切使えません。この点をまずはしっかり頭に入れておいてください。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※動かない例
function myFunction() {
	alert("こんにちは!");
}

※関連コンテンツ

「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る