スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

続きはWebで!

ちょっと気分をかえてみたくなり、今後の投稿はBloggerにしてみます。

http://blog.bagend.info/

取りはしたものの、あまり有効に使えていなかった独自ドメインも使ってみました。
#けど、Google先生のご機嫌が悪いようなのでドメインを取り直しました。

gooからFC2に移ったときと同様、過去の記事を遡って引っ越しとかはせず、向こうには今後の投稿だけ載ることになります。
また、ブログのテーマを変えたり、使い分けたりするということでもないので、今後も引き続きよろしくお願いします。
スポンサーサイト
[ 2011/07/08 19:27 ] 未分類 | TB(0) | CM(1)

Google Apps Script

#最近、アニメやコミックの記事が書けてない

http://code.google.com/googleapps/appsscript/

 使ってみてのまとめ。もう他の人がとっくに書いているだろうけど。


これは何?


 GoogleがWebから使わせてくれるプログラム開発&実行環境。略称GAS。
 GoogleにWebアクセスさえ出来れば、手元のPCに何もなくても使えるというのがウリです。


何が出来るの?


 EXCELのVBA(マクロ)にあたるものと考えるのがふさわしいと思います。
 Googleドキュメントのスプレッドシート(表計算)の中で、オリジナルのワークシート関数を作ったり、データを加工したり。
 スプレッドシートの中のデータだけでなく、カレンダーやアドレス帳、メールなどGoogleの他のデータを読み書きできるのがウリ。
 Googleの外のサイトへのアクセスも出来るので、テレビの番組表のデータを拾って一覧表にまとめるようなこともできるはず。


どうやって作るの?


 Googleドキュメントのスプレッドシートにスクリプトエディタというメニューがあって、ここから作成します。


どうやって実行するの?


 スクリプトエディタから直接実行するほか、スプレッドシートを開いたときに実行させる、メニューから実行させる、タイマーで何分おきに実行させる、データが編集されたら実行させる、などいろいろ。
 スプレッドシートから作成した後、独立したサービスとして実行させることもできます。自分じゃ試してないですが。


どのような知識が必要?


 文法はJavaScriptのそれに則っています。基本的な書き方は知っておく必要があるでしょう。

 EXCEL等のVBAを使った経験があれば習得が早いと思います。が、未経験者がわざわざ回り道するほどでもないです。FileSystemObject等、後から新しい要素が盛り込まれてきているVBAよりGASのほうがスッキリ書けます。

 カレンダーやアドレス帳などGoogleのデータを扱うなら、言語リファレンスを読む前にそのアプリをちょっとは使ってみてください。GASの言語リファレンスはほんとうに言語の部分しか説明していないので。

 GUIの部品はGoogleWebToolkitのそれに準じています。イメージをビジュアルで見せてくれるギャラリーなどもWebToolkitにはあるので、まずはそちらを見てイメージをつかむのがいいと思います。

 以上のいずれも、勉強し出すとキリがないです。自分のやりたいことと見合う範囲で。


コツ、あるいは注意点


 文法こそJavaScriptですが、Googleのサーバ上で動作する点に注意が必要です。秒単位でのカウントダウンなど、画面をガシガシ書き換えるような処理には全く向いてません。画面を書き換える裏で通信も発生しています。その代わりに自分のマシンが非力だからといって処理速度が落ちることはないはず。もちろん、通信の速度が遅ければ別です。

 上記の理由で、処理の進行表示などを細かくやるのは難しいです。GUIの取扱もまだまだ面倒ということもあり、自分はSpreadSheet.toast()メソッドを処理n件おきに発行することにしました。タイトル(太字)とメッセージの両方を設定できて、何秒間表示させるかのコントロールもできて助かりました。

 Googleの中でのやりとりだから、Googleのデータの扱いも速いだろうと期待してましたが、現状それほどでもありません。スプレッドシートのセルを1個1個読み書きなどすると目に見えて、というより信じられないほど遅くなります。範囲指定で配列に一括で取り込むような工夫が必要です。こういう工夫はVBAでも必要なので、経験した人もいるといるでしょう。

 オリジナルのワークシート関数を作れて、それを表中に埋め込めるのが大きな魅力です。が、外部サイトへのアクセスを伴う処理など、制限されているものもあります。セル1つ1つにそんな処理を入れられたら大変なことになるので当然ですね。開いたときにデータを取り込んで、それを使い回すみたいな回避策を検討する必要があるでしょう。

 日付・時刻を扱うスクリプトにはタイムゾーンを設定しないと面白いことになります。Googleカレンダーの終日の予定などのように設定しても拾いきれない問題もあります。(これはGoogleカレンダーの情報の持ち方の問題なので…)

 カレンダー、アドレス帳など、他のサービスへのアクセスにあたってはAPIの呼び出し回数制限があります。現状、何回までという基準も明示されておらず、GoogleAppEngineのように課金して制限を緩めてもらうみたいなこともまだできないようです。


困ったこと、要望など


 バージョン管理システムがなく、サポートフォーラムでも要望として挙げられています。過去の履歴は一応たどれるのですが。

 VBA同様、手軽さがウリということもあるので、業務用システムとして本格的な構成管理が求められる環境で使うには独自の工夫や根回しが必要だと思います。

[ 2011/07/02 21:54 ] 未分類 | TB(0) | CM(0)








上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。