お弁当の注文システムを作る ~その1~

Excelマクロによる業務効率化

宙に浮いたお弁当注文システム

新たに勤怠システムを導入しました。これまでの勤怠システムは社員一人ひとりに配布されたバーコード(カード)をリーダーで読み込んで記録をしていました。一方、新たなシステムはスマートフォンアプリです。出退勤の打刻だけでなく休日・遅刻・早退・外出等の申請までできます。

しかし、従来の勤怠システムは出勤時カードを通すときにお弁当の注文を同時に処理していたのですが、新システムにはお弁当の注文を処理する機能がありません。そこで、やむなくお弁当の注文のためだけに旧システムを生かすことになりましたが、やはりそれはおかしいということで・・・上司曰く「何とかならないだろうか?」と。「何とかやってみます」と答えてしまったのでした。

やりたいこと

  1. お弁当の注文は社員それぞれのスマートフォンで行う。
  2. 毎朝9時に注文を取りまとめ発注書を作成する(自動化)。
  3. 月末にひと月分の締めを行い、お弁当屋さんへの支払い額の確認書と個々の社員への請求額の一覧表(給与天引き一覧表)を作成する(自動化)。

スマートフォンでお弁当注文できるようにしたい

今まではお弁当の注文専用のパソコン1台で対応していたので、出勤時に順番待ちが発生していました。スマートフォンからお弁当の注文ができたら順番待ちすることもなく、場所にも時間にも縛られることなくお弁当を注文することができ便利です。

でも、専用アプリなんてあるの? 仮にあったとしても、インストールしたり、ユーザー登録したり、ログインしたり。こういう作業、全員にお願いするのって結構大変です。できれば特定のアプリをインストールすることなくもっと簡単に使いたい。

そこで、googleフォームを利用します。googleフォームはインストールやログインすることなく、ブラウザでフォームのURLからアクセスすることができます。

(1)注文フォームを作成する

作成手順は超簡単です。

グーグルフォームでお弁当の注文フォームを作成する

①googleフォームを使うために、まずgoogleのアカウントを取得します。

②googleアカウントを取得したら、chromeを開きます。

③googleアプリの中から、「ドライブ」を選択します。

④「新規」から「googleフォーム」を選択します。このとき「テンプレート」から選ぶこともできます。今回は「空白のフォーム」を開きます。

⑤「無題のフォーム」に「お弁当注文フォーム」と入力します。「フォームの説明」は必要があれば入力します。今回は、「お弁当を注文される方は、社員番号、氏名、メニュー、数量を入力して送信ボタンをタップしてください。お弁当の注文受付時間は午前7時~午前9時です。」としました。

⑥「無題の質問」に「社員番号」と入力し、プルダウンメニューから「記述式」を選択し、回答「必須」のスイッチをオンにします。

⑦質問を追加します(右側の「○の中に+」を選択)

⑧「質問」に「氏名」と入力し、プルダウンメニューから「記述式」を選択し、回答「必須」のスイッチをオンにします。

⑨質問を追加します(上記⑦参照)

⑩「質問」に「メニュー」と入力し、プルダウンメニューから「ラジオボタン」を選択し、「選択肢」にメニュー名を入力します。更にメニューを加えたいときは「選択肢を追加」にメニュー名を入力していきます。そして、回答「必須」のスイッチをオンにします。

⑪質問を追加します(上記⑦参照)

⑫「質問」に「個数」と入力し、プルダウンメニューから「記述式」を選択し、回答「必須」のスイッチをオンにします。

⑬注文フォームができました。

(2)注文フォームのURLを取得して関係者に配布する

完成した注文フォームをブラウザで表示するためのURLを取得します。

①右上の「送信」ボタンをクリックします。

②「送信方法」で「リンクのアイコン」を選択します。

③「URLを短縮」にチェックを入れて「コピー」します。

④コピーしたURLをメール等に貼り付けて関係者全員にお知らせします。

(3)「社員番号」や「氏名」が入力されたURLを取得する

利用者の立場からすると入力欄が多いと面倒に感じてしまいます。また、入力ミスがあると集計するときに集計できなくなってしまいます。そこで、「社員番号」や「氏名」等が始めから入力されている状態のURLを作成します。

①右上の「その他」のアイコンをクリックして、「事前入力したURLを取得」を選択します。

②開いたフォームの「社員番号」「氏名」を入力します。「個数」も「1」と入れておきます。

③「リンクを取得」ボタンをクリックすると、左下に「このリンクを共有すると、自動入力された回答を含めることができます」「リンクをコピー」というメッセージが現れますので、「リンクをコピー」の部分をクリックします。

⑤コピーしたリンクをメール等に貼り付けて本人宛にお知らせします。

(4)注文内容を一覧表(スプレッドシート)に展開する

お弁当注文フォームからの注文はスプレッドシートに一覧表の形に展開することができます。

①googleフォームの「お弁当注文フォーム」を開き上部の「回答」をクリックします。

②すでに円グラフ等に展開されていますが、お弁当の注文内容の取りまとめの表としては見づらいです。一覧表の方が見やすいと思いますので、一覧表に展開します。

③右上のスプレッドシートのアイコンをクリックします。

④「新しいスプレッドシートを作成」にチェックを入れ、「無題のフォーム(回答)」に「お弁当注文フォーム(回答)」と入力し名前を付けて、「作成」ボタンをクリックすると、注文内容の一覧がスプレッドシートに展開されます。

スプレッドシートに展開できました

(5)お弁当の注文時間(7時から9時)以外は注文できないようにグーグルフォームにタイマーを設定する

 9時以降の注文をいつまでも受け付けていたら、発注を何度も修正しなければならなくなります。そのためには9時で注文を締め切ることができるように、お弁当注文フォームにタイマーを設定します。

①グーグルドライブの「新規」から「その他」更に「google Apps script」を選択します。

②左上「無題のプロジェクト」をクリックして、「お弁当受付タイマー」に変更します。

③お弁当注文フォームの編集画面のURLをコピーしてメモ帳に貼り付けます。

④お弁当注文フォーム(回答)のスプレッドシートのシートURLをコピーしてメモ帳に貼り付けます。

⑤「コード.gs」に下記コードを記入(コピペ)します。(●●●の箇所は③④のメモ帳からそれぞれのURLを貼り付けてください)

※注意:このコードは1日当たりのお弁当の注文数量が100個未満を想定しています。100個以上になる場合は、コードの下から2行目(sht.insertRows(2,100);)と3行目(sht.deleteRows(2,100);)の数字「100」の部分を必要な数量に変更してください。

function setTrigger() {
 var setTime = new Date();
  setTime.setDate(setTime.getDate()+1)
  setTime.setHours(09);
  setTime.setMinutes(00); 
  ScriptApp.newTrigger('closeFormAcceptance').timeBased().at(setTime).create();  
}

function closeFormAcceptance() {
 var myForm = FormApp.openByUrl("●●●ここにお弁当注文フォームの編集画面のURLを貼り付けてください●●●");
  myForm.setAcceptingResponses(false);
}

function openFormAcceptance(){
  var myForm = FormApp.openByUrl("●●●ここにお弁当注文フォームの編集画面のURLを貼り付けてください●●●");
  myForm.setAcceptingResponses(true);
  
  myForm.deleteAllResponses(); 
  
  var spreadsheet = SpreadsheetApp.openByUrl("●●●ここにお弁当注文フォーム(回答)のスプレッドシートのシートURLを貼り付けてください●●●");
  var sht = spreadsheet.getActiveSheet();
 
  sht.deleteRows(2,100);
  sht.insertRows(2,100);
  setTrigger();
}

⑥google apps script(お弁当受付タイマー)の「編集」タグから「現在のプロジェクトのトリガー」を選択してクリックします。

⑦トリガーを追加をクリックします。

⑧「実行する関数を選択」で「openFormAcceptance」を選択します。

⑨「時間ベースのトリガーのタイプを選択」で「日付ベースのタイマー」を選択します。

⑩「時刻を選択」で「午前6時~7時」を選択して保存します(ここは適当な受付開始時間を設定します)。

⑪「アカウントの選択」が出た場合はアカウントを選択します。

⑫注意画面で「詳細」をクリックします。

⑬次の注意画面で「お弁当受付タイマー(安全でないページ)に移動」をクリックします。

⑭「googleにログイン」で「許可」をクリックします。

⑮これでタイマーの設定が完了しました。午前6時~7時の間にお弁当受付フォームが受付可能な状態になり、9時に閉鎖されます。

 次回は、注文内容のデータベースを作成し、発注書を出力します。

コメント

タイトルとURLをコピーしました