GoogleフォームとGoogleスプレッドシートで簡単な体重管理Webシステム

GoogleフォームとGoogleスプレッドシートで簡単な体重管理Webシステム

こんにちは。

昨日のためしてガッテンの「マイナス3%の奇跡! ダイエットの超新常識」を見て「あぁ、自分もやらなきゃな。。。お腹がこんなんじゃ。。」って思った私なのであります。
世間にはいろんなダイエット支援アプリがありますが、入力された体重や体脂肪のデータを自分で様々なグラフに加工できたら便利なのかな?って思いました。

Googleスプレッドシート使おうかなと思ったのですが、はて?Webからの入力どうしよう?と思っていたら、そっかGoogleフォームで入力すればGoogleスプレッドシートにデータ入っていくじゃん!
ってことで、ちょっと作ってみました。

まずはGoogleフォーム作成

上記のようにしてGoogleフォームを作成します。「空白のフォーム」からでいいと思います。


このあたりまでフォームを作成します。

これに日々データを入力していけば、対応するGoogleスプレッドシートに体重などのデータが記録されていきます(腹囲のみ必須項目にしていません)。

合計マイナス300kcalになる100kcalアイテムを追加してみる

今回のダイエット法の最大の売りは、日々総カロリーからマイナス300kcalを達成して少しづつ体重を下げて、まず脂肪肝を解消するということでした。
で、そのための案としてマイナス100kcalを3個ずつ、毎日実行するということでした。
マイナス100kcalは運動によるカロリー消費でも、食事の制限により摂取カロリー減少でもよくて、番組HPでは「マイナス100kcalカード」の画像を配布していました。
ただ、配布されたカードは種類が少なく実生活に当てはめると100kcalアイテムが足りません。

なのでネット上で「100kcal 食品」「100kcal 運動」などと検索して100kcalアイテムを増やしていきます。
集めた100kcalアイテムを「メモ帳」などに記述しておきます。

ごはん2/3杯
バタートースト1/2枚
やきそば1/5皿
カレー1/8皿
エビフライ1本
ハンバーグ1/5個
目玉焼き1個
ピザ1/10枚
焼肉1枚
とりのから揚げ1個
フライドポテト1/2
ドーナツ1/3個
生ビール(小)1杯
日本酒0.5合
チューハイ1/2缶
ウィスキー42ml
赤ワイン1.5杯
缶コーヒー1.5缶
オレンジジュース1杯
ポテトチップス20g(約10枚)
しょうゆ煎餅1枚
板チョコ1/3枚
アイスクリーム1/3カップ
プリン1/2個
牛乳1/2杯
おむすび3/5個
クロワッサン1/2個
コーンフレーク1/4皿
野菜サラダ2/3皿
大学芋3個
バナナ2/3本
りんご1/2個
カップ麺1/3杯
カップやきそば1/5杯
柿の種1/2袋
マヨネーズ大さじ1
コロッケ2/5個
塩鮭1/2切
お好み焼き1/5枚
フランクフルトソーセージ33g
殻つきピーナッツ8個
パスタ1/5人前
枝豆2人前
刺身盛り合わせ2/3人前
揚げ出し豆腐1/3人前
大福餅小1個
草むしり21分
犬の散歩20分
ラジオ体操20分
縄跳び10分
ヨガ・ストレッチ33分
自転車20分
ウォーキング20分
ジョギング12分
水泳10分
サッカー10分
階段のぼり10分
風呂掃除21分
ゴルフ18分
軽い筋トレ27分
バスケットボール12分
子供と遊ぶ16分
掃除機かける23分
キャッチボール33分
山登り11分
水中ウォーク20分
スキー滑降10分
テニス14分
ガーデニング20分
ボウリング30分

これをさっき作成したGoogleフォームの回答が入力されるGoogleスプレッドシートに新しいシート「項目一覧」を追加してコピペして入力します。

さっきのGoogleフォームの2ページ目に、マイナス100kcalアイテムを選択するプルダウンの入力欄を3つ作りたいのですが、100kcalアイテムの数が多いですし3つのプルダウンのリストの内容は同じリストでいいのでGoogleフォーム編集画面で入力していると大変なので、GoogleAppsScriptでフォームの2ページ目を作成します。

回答用のGoogleスプレッドシートに「項目一覧」のシートを作って先ほど100kcalアイテムリストを入力しましたが、そのスプレッドシートの「ツール→スクリプトエディタ」でGoogleAppsScript編集画面を起動します。
以下のScriptをコピペしてください。

function createListItemOfTheForm(){
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  
  var form = FormApp.openById('作成したGoogleフォームのフォームID');
  
  
  var dataValues = spreadsheet.getSheetByName('項目一覧').getDataRange().getValues();
  var itemValues = generateArray(dataValues, 0); //-100kcalアイテム一覧 


  form.addPageBreakItem()
    .setTitle('マイナス100kcalアイテム')
    .setHelpText('マイナス100kcalアイテムを3個選択します');
  
  
  form.addListItem()
    .setTitle('マイナス100kcal(1)')
    .setChoiceValues(itemValues)
    .setRequired(true);
  
  form.addListItem()
    .setTitle('マイナス100kcal(2)')
    .setChoiceValues(itemValues)
    .setRequired(true);
  
  form.addListItem()
    .setTitle('マイナス100kcal(3)')
    .setChoiceValues(itemValues)
    .setRequired(true);

}


function generateArray(values, column){
  var i = 1;
  var array = [];
  for(var i = 1; i < values.length; i++){
    if(values[i][column]){
      array.push(values[i][column]);
    }
  }
  return array;
}

上記コードの「作成したGoogleフォームのフォームID」の部分を、Googleフォーム編集時のブラウザ画面のURL部分の「https://docs.google.com/forms/d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit」のピンクの部分で置き換えます。

GoogleAppsScript作成の参考にした記事はこちらです。

「実行→createListItemOfTheForm」として実行すると、フォームの2ページ目はこのようになります。

以上で出来上がりです。

出来上がったGoogleフォームを外部から入力のために呼び出すURLは、Googleフォーム編集画面の「送信」ボタンを押して、リンクのマーク(チェーンのようなアイコン)をクリックすれば得られるので、メールなどで自分のスマホに送っておきます。

GoogleフォームのURLをブラウザで呼び出せば、家でPCでも出先でスマホでも体重関連の入力ができます。

このような感じにGoogleスプレッドシートにデータが入力されていきます。(データにタイムスタンプはあるのですが、前日の入力もできるように日付入力は手入力欄を設けています)

オススメカテゴリの最新記事