マクロ管理法をGoogleスプレッドシートでやってみる2

前回からのあらすじ

マクロ管理できるようになったけど、いちいち入力するのが面倒と思いました。

決 まった食事についてワンボタンで入力する

なので、ワンボタンで入力できるようにしたい。
実践している方法としてIFTTT*1で入力する方法を紹介する。


IFTTTでワンボタンで入力する。

今回実行するのは、「IFTTTウィジェットのボタンを押下したら、スプレッドシートに決まった値を入力する」という処理をしたい。
嬉しいことの一つは、スマホからならウィジェットを使用してホーム画面に置きワンボタン化を簡単にできるからだ。

IFTTTで処理をつくる。

処理は図に表す。トリガーは、ボタンウィジェットを選択する。 アクションは、「Google Sheet」を選択、そして「Add row to spreadsheet」(行を追加する)を選択する。 具体的な値のうち、重要な箇所として、以下の構文を入れることにする。なお、セルの順番は「タイムスタンプ、日付、カロリー、タンパク質、脂質、炭水化物、備考」という構成である。個々の環境で変更すること。

Formatted row

=DATEVALUE(GOOGLETRANSLATE(left("{{OccurredAt}}",find(" at ","{{OccurredAt}}")),"en","ja"))+TIMEVALUE(RIGHT("{{OccurredAt}}",len("{{OccurredAt}}")- find(" at ","{{OccurredAt}}")-3)) ||| =DATEVALUE(GOOGLETRANSLATE(left("{{OccurredAt}}",find(" at ","{{OccurredAt}}")),"en","ja")) ||| 91 ||| 7.74 ||| 6 ||| 0.18 ||| ゆで卵(ボタン)
|||でセルを区切れるので、栄養素には固定値を入れてしまおう。

IFTTTの日付入力に関する注意と対策

注意点がある。IFTTTで出力できる日付は英語(例:September 11, 2018 at 11:30PM)で出力される。そのままスプレッドシートに入れても「日付型」にできない。なので、関数を使って、変換してあげることにする。
Google Sheetには、 GOOGLETRANSLATEという関数がある。これの機能はその名の通り、翻訳をしてくれる関数だ。 これで、日本語になるので、DATEVALUEでスプレッドシート上で日付データとして解釈することができるようになる。

最後に名前を入れて上げて完成。

スマホにウィジェットを貼り付ける。 ウィジェットの貼り付け方は、スマホそれぞれになるが、画面の長押し→ウィジェット→IFTTT→ウィジェットボタンを選択してあげて、先程作成したレシピを設定してあげれば良い。 これでホーム画面に表示されればOKだ。

必要な食品の数だけレシピを作ってあげよう。

このあたりは、面倒かもしれないが、一度設定すれば何度でも使えるので我慢である。



閑話休題:GASについて

おそらくGoogle Applet Scriptを使えば、関数化することで食品のバリエーションの追加も簡単になるかもしれない。しかしながら、簡単にコマンドを呼び出すにはAPIを設定して上げる必要があるだろうし、スマホから呼び出すのも少し研究が必要だろう。 いずれは勉強してみたいところだ。

まとめ

これで、簡単に入力することができるようになったわけだ。あとは、以前作成したピボットテーブルを見つつ、食事量を管理するといいだろう。

*1: IFTTTは「IF This Then That」を略した、Webサービス間で自動的に処理を連携させることができるサービスである。例えば、「Twitterで投稿したら、その内容をGoogleシートに記録する」などできる。

コメント

このブログの人気の投稿

リモートワークをLogicoolのマウスとキーボードで複数PC切り替えて優勝した

VBAでのInterfaceやキャスト

SUPERHOTがいかにSUPERHOTか語りたい