【GAS】少しは成長?:スプレッドシートからカレンダーへ予定を登録

Googleカレンダーの予定をメールで配信することにしたのは、すでに書いたとおり。この過程で《処理速度》ということを意識した私1 https://wp.me/p99xkb-eZ https://wp.me/p99xkb-f6   Pythonの勉強で、繰り返し配列の演習をしたことも少しは影響していたのだろうか、前に作ったコードを見て、冗長な部分をなくしたい思いに駆られる。 前に作ったものをシンプルにし、更にもう少しだけ便利にしてみようと書き直ししてみた。gistを直そうと思ったのだけど、前のコードがあまりにも汚くて、反対に「成長できてるんじゃない?」と思わせてくれるので、あれはあれでとっておくことにした。 https://wp.me/p99xkb-9R

変更点

出発点は、長くて汚いコードをシンプルにしたい、というもの。そのため、入力にフォームを使って云々といったところまで改良はしていない。ただ、もちろんもっと使いやすくしたいとは思っているので、その前段階として今回はカレンダーへの登録だけ不要なデータまで取得している。

以前のプログラムの概要

以前のコードは、9カラムの表に必要に応じてデータを登録するというもの。(自分で入力するのは、8)

  • イベントタイトル
  • 開始日
  • 開始時刻
  • 終了日
  • 終了時刻
  • 終日イベント判定
  • 説明(カレンダー本文)
  • 場所
  • カレンダーへの登録状況(自動入力される)

終日イベントかどうかは手動で判定。面倒くさい。

今回のプログラムの概要

今回は、カラム数が増えて10カラム。(自分で入力するのは、8)

  • イベントID(自動入力される)
  • スタッフの名前
  • 不在の種類
  • その他タイトルに入力する情報
  • 開始日
  • 開始時刻
  • 終了日
  • 終了時刻
  • 説明(カレンダー本文)
  • 場所
  • カレンダーへの登録状況(自動入力される)

以前と今回のプログラムの違い

今回のプログラムは、個人で使うのではなく、メール配信しているカレンダーへの入力を意識したもの。前は明確なゴールがなかったので、あの出来も仕方がないと言えば仕方がない。

【イベントタイトルの入力を簡単に】

以前のプログラムでは、タイトルの整形も自力。今回は、カラムを分けて少しシンプルにしてみた。 例:

  • (以前)以下の項目をすべてタイピング 「(山田) 外出 XXXカンファレンス」
  • (今回)3つのカラムに内容を分けて入力 「山田」「外出」「XXXカンファレンス」 →「(山田) 外出 XXXカンファレンス」と自動的に整形される。

何だ、たいしたことないじゃないか。そのとおり。実は、後々、フォームを使っての入力を意識している。スタッフ名と不在の種類はドロップダウンにする予定。

【終日イベントの判定を自動に】

終日判定のカラムを削除。これは、他の入力データの内容から自動で判断させる。

【本当は不要:説明と場所】

GASの《.CreateAllDayEvent()》や《.CreateEvent()》でもオプションとなっている、説明と場所については、もはや私に取っては不要。(イベントタイトルだけをBotやメールでみんなに通知しているから) ただ、前回入れていたので、あくまでおまけで入れておいた。これを削除すると、以前より1つカラムは少なくなる。

【いつくるかわからない今後のために:イベントID】

イベントの修正をするプログラムを作ることを考えて、イベントID用のカラムを追加した。本当に使うときが来るのか疑わしいが。

カレンダーへの登録フロー

では、今回のプログラムを画像を使って説明。

1. データ入力

必要なデータを入力する。終日イベントの場合は、時刻の入力が不要。(必須入力項目未入力の場合の処理を入れていない点に注意。今後、改善の必要あり。) 2018-06-22_before_running_programme

2. プログラムの実行

前回のようにボタンを設置するのもいいが、時間をトリガーにすることを考えている。 はい、全て入力完了。 2018-06-22_Calendar_view 入力後は、下図のようにイベントIDと登録状況が自動更新される。 2018-06-22_after_running=programme 今となっては私には不要だが、場所と説明も反映されている。 2018-06-22_description_location

今回のコード

不要な部分を削除。タイトルの整形などを付け加えたものの、全体の長さは同じくらいにおさまった。

変数の宣言の位置変更

VBAでは変数を一番最初に書くことが多く、前のプログラムではそれでいいような気がしていたが、最近は使う直前の宣言が多いので、そっちに変更した。

感想

まだまだ改良の余地はあるが、必要としているものに近づいた。たった数ヶ月前のことなのに、ここまで変えることになるとは考えもしなかった。どんなものが作れるのか、と手探りで作るのと、こういうものを作りたい、と作るのではこんなに違うものなのか。 今後はフォームを使った入力の簡易化や、登録済みデータの修正・古いデータの消去などのフローを検討してみたい。


  1. 「かわいいアプリ見つけたよ〜!」とウキウキな感じでメッセージ送ってきた友達(職業プログラマ)に「いやさ、今取り組んでるコードの処理速度がさ・・・」と切り返してひかれる事態。 ↩︎
Advertisements

This site uses Akismet to reduce spam. Learn how your comment data is processed.