2011年2月21日月曜日

Google Apps Script勉強会に参加しました #gasja

@atusi さん主催のGoogle Apps Script勉強会#2 に参加しました。

第一回の時とは違い、半分くらいの人が「Google Apps Scriptを触ったことがある!」という状態でビックリです。日本でそんなにGASを触っている人がいるなんて…。

発表資料など

@webos_goodiesさんがAWSのROUTE53とSpreadsheetの連携アプリの紹介を、@atusiさんがGASの概要の説明をされました。

ハカソン

今回はハッカソン主体だったので、自分も何か作ろうと作業しました。お題は「会社の勤怠シートの入力を補助するツール」です。私は勤怠シートを月末にまとめて記入するずぼらなタイプで、毎月入力が面倒です。そこで、下記の機能を持ったスクリプトを作ることにしました。

  • 入力する勤怠の対象月を入力する
  • 日本の祝日を取得する
  • 自分の予定一覧を取得する
  • 土日祝以外は基本となる時刻を固定で入力済みにし、自分の予定を補足情報として対象日に表示する

結局作業時間の範囲内では表示に必要なデータの取得までしかできていなかったのですが、ログに出力した内容を表示しつつ「取得まで出来たんだぜ」とか成果発表をしました。

帰宅後に少し作業して表示部分もできたので貼っておきます。アクティブシートにがっつり上書きするので、興味があるなどで試される方は新規のシートで試してください。

新規シートを作ってスクリプトエディタを起動し、コピペでペタっと貼ってシートを再読込すると「gasja2」というメニューが追加されます。その下の「勤怠入力補助」をクリックします。

いくつか入力項目をもったダイアログが表示されるので、2011/02のような形式で年月を入力してOKをクリックします(最初はカレンダーへのアクセスを許可を求めるダイアログが表示されるので、許可する必要があります)。

対象月の勤怠表の雛形が表示されます。土日祝以外はデフォルトの勤務時刻が入力され、土日祝は日付列の背景色が変わります。祝日情報は日付列のコメントに設定されます。また、シート所有者のカレンダー情報は2列目に表示されます。

気になった

今回も新たに勉強になったことがたくさんありましたが、その中でも特に気になった物。

  • Rage#setBackgroundColor()
  • Range#setNumberFormat()
  • Sheet#setColumnWidth()

上記のような、スタイルの設定を行う機能が存在しているということに驚いた。確かgoogle-data-apiのSpreadsheet APIにはセルのスタイルを操作するAPIが無かった記憶があったんですよね。GASは必ずGAS-GData-(Spreadsheet等)という経路でAPIを実行すると思っていたので、実はそれ以外にGAS-(Spreadsheet等)のような経路があるのか?等と思いました。それか、GDataにスタイル操作系のAPIが追加されたか、追加される前兆か?…と気になりました。

コメントを投稿