Googleサービスを使って、薬の在庫調べを簡単に!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

目次

8. スプレッドシートの作成(データを保管する。扱いやすくする。)

ここからは、Googleスプレッドシートを作成していきます。

8-1. 手順その1:テスト入力したデータを確認

先ほどテスト入力をしたことで、スプレッドシートに「フォームの回答 1」というシートができています。

8-1-1. 入力データの説明
  • 1行目:
    先ほど作った入力フォームの質問部分 + タイムスタンプが入力されています
  • 2行目:
    テスト入力した在庫数のデータが入力されていますが「行を挿入」して、1日の服用回数を計算するための行にします。

     

    • A2→「1日の服用回数」
    • B2、C2、D2・・・→各薬の服用回数を入力してください(半角で)
    • 栄養剤の種類など回数表示の必要がないものには「*(アスタリスク)」を記入します
    • 行を固定しておくと、見やすいです
      • 固定したい行を選択
      • 「表示」→「固定」
  • 3行目:
    在庫数が記入されています

8-2. 手順その2:データを扱いやすくするために、シートを作成します

「フォームの回答 1」のシートではデータとして扱いにくいので、LINEに数データを送るためのシートを、新規で2枚追加します。

  • 「表示調整」シート
  • 「現在庫表示」シート
8-2-1. 表示調整シート

最新のデータを取得するためのシートです。
「フォームの回答 1」を参照して、一番新しいデータを抜き出します。

A1に以下をコピペ(見えていない部分があります。すべて選択して、コピーしてください。)

セルを選択して、セルの右下にカーソルを合わせると「+」になります。
その状態で薬の数ぶん横にドラッグ

すると、薬の名前の下に最新の在庫数が表示されているはずです。

このシートはここまで。

プルダウンの選択肢を使った場合

選択肢部分だけがエラーになるので

=INDEX(‘フォームの回答 1’!C:C, MAX(MATCH(MAX(‘フォームの回答 1’!C:C)+1,‘フォームの回答 1’!C:C,1),MATCH(“”,‘フォームの回答 1’!C:C,-1)))

=INDEX(‘フォームの回答 1’!C:C, MAX(MATCH(MAX(‘フォームの回答 1’!A:A)+1,‘フォームの回答 1’!A:A,1),MATCH(“”,‘フォームの回答 1’!A:A,-1)))

のように変更して、参照する場所を少し変えてあげると、うまくいきます。

8-2-2. 現在庫表示シート

このシートではLINEに表示させたい情報2つ

  1. 何日分の薬があるのか?
    (スプレッドシートでできる計算は、スプレッドシート内で処理しておきます)
  2. 最新の在庫状況は?

の計算と、データの整形を行います。

また、在庫数のデータが横並びなので(フォームの回答 1シート・表示調整シート)、データを使いやすくするために縦書きに変更していきます。

現在庫表示シートを用意したら、以下のように書きます。

  • 1行目:
    • A1→薬名、B1→回数(1日に飲む回数)、C1→現在個数
  • 2行目:
    • A2に以下を記入。
      =TRANSPOSE('フォームの回答 1'!A1:S1)
    • B2に以下を記入。
      =TRANSPOSE('フォームの回答 1'!A2:S2)
    • C1に以下を記入。
      =TRANSPOSE('表示調整'!A1:S1)
      • 薬名が縦並びに表示されました。

スプレッドシートはここまで。

9. GoogleappScript(GAS)ファイルの作成

ここからはGASファイルを作成していきます。
・・・がその前に、LINEでの受け取り準備を済ませてしまいましょう。

9-1. LINE Notifyでトークンを取得する

ファイルに保存ができたら次は、LINE Notifyでトークンを取得します。

  • LINE Notifyとはどんなサービスですか?
    Webサービスと連携すると、LINEが提供する公式アカウント「LINE Notify」から通知を受信する事ができるサービスです。
  • 無料で利用できますか?

LINE Notifyは無料で利用することができます。

他Webサービスと連携する際、サービスによっては有料アカウントでのみ利用できる機能などもあります。

参考:LINE Notify ヘルプセンター

・・・ということでLINE Notify は、LINEを通して色々なWebサービスから、自分の知りたい通知を受け取れる便利なサービスです。

まずは、LINE Notify の利用申込みをしましょう。
利用申込みができたら

  1. こちらのページ(LINE Notify)から「LINE IDでログイン」→「マイページ」→「アクセストークンの発行(開発者向け)」から、「トークンを発行」します。

  2. トークン名を決め、表示する場所を決めたら→「発行する」
    1. 薬の在庫表示なので、表示する場所は「1:1でLINE Notifyから通知を受け取る」でOKです。
  1. トークンをメモします。後で使います。(他人に絶対知られないように、取り扱いに注意すること!
  2. LINE Notify から通知が来るので、スマホにてLINE Notifyを招待

これで、LINEの設定は終了です。

9-2. GASファイルにスクリプトを記入する

まずは、先程用意したGASファイル「薬在庫スクリプト」に以下をコピペしてください。

9-2-1. 各スクリプトの簡単な説明

何が書かれているのか?簡単な説明と手順です。

9-2-1-1. 各種設定

スプレッドシートとLINEでやり取りするための設定です。

  1. 「ファイル」→「プロジェクトのプロパティ」→「スクリプトのプロパティタブ」→「プロパティ」→「notifyToken」と入力(このまま入力すること。大文字、小文字もしっかり同じに入力してください。
  2. 右側の値に「先ほど取得したトークン」を入力
  3. 「プロパティ」→「ssheetId」と入力(このまま入力すること。大文字、小文字もしっかり同じに入力してください。
  4. 右側の値に「スプレッドシートのID」を入力
    スプレッドシートのIDの見方
  5. 保存
9-2-1-2. スクリプトの中身

上から順番に

  • スプレッドシートとシート名を設定
  • スプレッドシートの内容を参照して、データを扱いやすく加工
    • 途中で何日分の薬なのか?を計算
  • 準備できたデータをLINE Notifyに送る

という流れです。

これでLINE Notify との繋がりができたので、一度実行ボタンを押して動作確認をしておいてください。

GASを実行する際に「 承認が必要です 」という表示が出る場合は、こちらを参考にしてください。
参考:【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために

9-2-2. フォームとの連携

これまでの作業を「フォームの送信ボタンを押す」→「GASが動く」→「LINE通知で確認」という流れにするために、”キッカケ”の部分を設定します。

  1. GASの左上にある、「時計のアイコン」をクリック。
  2. トリガーを設定します
  3. 右下の「トリガーを追加」
  4. 「実行する関数を選択」→「postLineNotify」
  5. 「デプロイ時に実行」→「Head」
  6. 「イベントのソースを選択」→「スプレッドシートから」
  7. 「イベントの種類を選択」→「フォーム送信時」
  8. 「エラー通知設定」→「毎日通知を受け取る」(エラー通知はお好みで)
  9. 保存

これで、フォームで在庫数を入力→送信ボタン押下→LINEで通知がくるはずです。

テストするだけ・在庫数の入力は済んでいる・・・なら、フォームの送信ボタンを押さないでGASファイルの三角ボタン▶を押すだけでも、LINEで通知が来るはずです。

テストする際に、試してみてください。

10. まとめ

子どもが小さいうちは、自分で入力。

子どもが大きくなったら、子どもに入力してもらうと簡単です。(自分の薬!という意識も高まる・・・かも?)

設定そのものが面倒くさい・・・という点は否めませんが、一度作ってしまうとあとが楽です。
スプレッドシートにデータが溜まっていくので、何かしら振り返りが必要になった時にもきっと、重宝すると思います 。

お薬の種類が多い方、試してみてはいかがでしょうか?

10-1. 追加事項

体調は日々、変化していくものです。

  • 新しい薬が増えた・・・。
  • 薬が減った(飲まなくてよくなった!)

という場合について・・・。

10-1-1. 薬が減った場合
  1. 「フォーム」の「該当薬欄」を削除
  2. 「スプレッドシート」→「フォームの回答1」より、該当薬の一列を削除
  • 「表示調整」の該当薬にあたる列を削除
    • 2番で該当薬の列を削除したので、エラー表示されている箇所があるはずです。その列を削除すればOK
10-1-2. 薬が増えた場合
  1. 「フォーム」に「該当薬欄」を追加
    • テスト入力してみてください
  2. 「スプレッドシート」→「フォームの回答1」を確認
    • 列の最後に、新しい薬が追加されます
  3. 「フォームの回答1」→該当薬の「1日の服用回数」を記入
  4. 「表示調整」の該当薬にあたる列に計算式を追加
  5. 「現在庫表示」→一番上に書いた計算式を変更
    • 該当薬にあたる列のアルファベットに変更

どちらの場合も、何度かテストしてみてください。

1 2

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る