アナログ集計の限界
毎月の安全意識調査や部署内の満足度調査。担当者がWordで質問票を作り、全員宛てのメーリングリストに添付して送信する。回答済みのWordファイルが30通、受信トレイに返ってくる。それを一つずつ開き。手作業でExcelの集計シートに転記していくのが恒例の風景だった。部署によっては、わざわざ印刷して手書きで記入し、FAXで送ってくる社員すらいた。

アナログな運用が続くと、必然的にトラブルの温床になる。スマホからでは添付ファイルが開けないというクレームが頻発した。古いバージョンのWordで上書き保存されたせいで。レイアウトが完全に崩壊していることも珍しくない。一番厄介なのは。名前を書き忘れたままファイル名も変更せずに返信してくるケースです。
まず、金曜日の夕方。大量のWordファイルを順番に開きながらExcelに数字を打ち込んでいたときのことだ。突然「ファイルが破損しています」というエラーダイアログが画面中央に居座った。誰の回答なのかもわからないまま、ただ虚無感だけが押し寄せてきて。目の前のキーボードがやけに遠く霞んで見えた。この不毛な作業から逃れる方法を探るしかなかった。
アンケートに潜む隠れコスト
アンケート業務には、目に見えにくい隠れコストが大量に潜んでいる。送付直後から始まるのが、未回答者を目視で洗い出す作業だ。送ったはずの30人分の名簿と。受信トレイにある返信メールの送信者名をひたすら見比べる。漏れを見つけたら。角が立たないような文面の督促メールを個別に送らなければならありません。
戻ってきたWordを一枚ずつ開いてExcelに転記する作業も地獄のようだった。単純なコピペならまだマシだが。フリーテキスト欄に長文が書かれているとセルから溢れてしまう。集計が終われば、今度はその結果を円グラフや棒グラフに変換し。報告用のスライドに貼り付けるという虚無の時間が待っている。10人規模の部署でも2時間は溶けていく。30人規模ともなれば、半日がかりの重労働になっていた。
次に、送る側も答える側も、ただ時間をドブに捨てている構造がそこにあった。
Word添付からの脱却、Googleフォーム活用
旧態依然としたWord添付の文化を捨て去る決断をした。代わりに導入したのはGoogleフォームだ。ブラウザ上で質問項目を設定するだけで、誰でも簡単にアンケート画面を作れる。「非常に満足」から「非常に不満」までの5段階評価はラジオボタンに設定する。複数選択させたい項目はチェックボックスにし、自由記述には段落テキストを用意した。

完成したフォームのURLをコピーし。部署のチャットツールに貼り付けて送信ボタンを押す。たったそれだけで、全員のスマホに直接アンケートが届くようになった。回答期限をフォームの説明欄に明記しておけば。後から「いつまでだっけ?」と聞かれることもない。誰かが回答するたびに、リアルタイムでグラフが自動生成されていく。わざわざExcelのセルを行き来しながら。Wordのテキストをコピーアンドペーストしていた頃が嘘のようだった。
フォーム回答のGAS自動集計
一方で、Googleフォームだけでも便利だが、業務要件に合わせるにはもう一工夫いる。過去の回答データと比較したり、特定の指標だけを抽出したりするには。独自のスプレッドシートと連携させるのが定石だ。そこでGAS(Google Apps Script)の出番となる。フォーム送信時に自動で動く「onFormSubmit」というトリガーを設定した。

誰かが回答の送信ボタンを押した瞬間、裏側でスクリプトが走り出す。回答データが指定したスプレッドシートに転記される。シート側にはあらかじめCOUNTIF関数を仕込んでおき。選択肢ごとの回答数を瞬時に集計する。AVERAGE関数で部署全体の満足度スコアも自動計算される仕組みを組んです。
最初のテスト回答を送信してスプレッドシートを開いたとき。すでに集計グラフの棒が跳ね上がっていた。Wordを30回開いて閉じてを繰り返していたあの時間は何だったのかと。しばらくモニターの前で呆然としたのを覚えている。手首の痛みがスッと消えていくような感覚すらあった。
ここで一度立ち止まって考えてみてください
Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。
自動メールで進捗と感謝、業務効率と精神的余裕
そのため、データの集計が自動化されたなら、コミュニケーションも自動化すべきだ。アンケートに答えてくれた社員へのお礼状と、担当者である自分への進捗報告。この2つのメールを、フォーム送信のタイミングで自動的に送る実装を加えた。使うのはGASの「GmailApp.sendEmail」メソッドです。
スクリプトの中で、フォームの回答内容からメールアドレスを抽出する。そのアドレス宛てに「ご回答ありがとうございました。回答番号は〜です」という定型文を流し込む。同時に。担当者のアドレス宛てに「現在N名中M名回答済み」という速報メールを飛ばすようにした。これによって「今どれくらい回答が集まっているか」をわざわざシートを開いて確認する手間が消滅した。集計の進捗が勝手に手元へ届く仕組みは、想像以上に精神的な余裕を生み出してくれる。
まさかの全員に督促メール誤爆、シート削除が原因
システムは完璧に仕上がったはずだった。テスト環境ではサンクスメールも速報も思い通りに動き、集計も一瞬で終わる。満を持して迎えた月次アンケートの本番展開初日。事件は昼休みの終わり際に起きた。

しかし、未回答者を自動でリストアップし。期日前に督促メールを送るスクリプトを走らせた直後だった。チャットの通知音が立て続けに鳴り響き。メールの着信ポップアップが画面の右下で無限に増殖し始めた。全員がアンケートに回答済みだったにもかかわらず、容赦なく「未回答のようです。至急ご回答ください」という督促メールが全30名にばらまかれていたのです。
血の気が引くとはまさにこのことだった。隣の席の先輩から「俺、さっき答えたよな?」と訝しげな顔で声をかけられ。胃の奥がギュッとねじり上げられるような痛みを覚えた。震える手でGASの実行ログを確認すると。送信済み件数がきっちり30件を記録していた。
原因は信じられないほど単純だった。スプレッドシートのシート番号をインデックスで指定していたため。テスト用のシートを一つ削除した影響で参照先がずれ。空のシートを読み込んでいたのだ。全員が未回答と判定されるのは当たり前のことだった。
コード刷新!未回答者抽出と再発防止
さらに、誤送信事故の謝罪行脚を終えた後、コードの根本的な見直しに取り掛かった。シートの位置に依存する脆弱な指定方法は捨て。シート名を文字列で明示的に指定するよう修正する。未回答者を判定するロジックも一から作り直した。スプレッドシートの回答データからメールアドレスの配列を取得する。それとは別に、社員マスタのシートから全社員のアドレス一覧を取得する。この2つの配列の差集合を取ることで。確実に「まだ答えていない人間」だけを抽出する処理を実装した。

配列のfilterメソッドとincludesメソッドを組み合わせれば。数行で差集合の計算が完了する。さらに、同じ過ちを繰り返さないための防波堤も設けた。メールを送信する直前の行にLogger.logを挟み込む。本番実行の前には必ずドライランを行い。ログに出力された未回答者リストが正しいかを目視確認する運用ルールを徹底したのだ。GASをより体系的に学びたい方には。AmazonでGASの実務書を一冊手に取るのが最も早い近道だ。侍エンジニアのようなマンツーマン指導型のスクールで実践形式で覚えるのも。確実に身につく方法として選択肢に入る。
自動化、工数激減と回答率91%
自動化の仕組みが安定稼働し始めてから3ヶ月が経過した。あの忌まわしい手作業の記録と比較すると、劇的な変化が起きている。かつては配布に30分。未回答者の割り出しと個別の督促に1時間から2時間を要していた。戻ってきたWordを転記して集計するのにも2時間以上かかっていたため。月に3〜4時間は確実に奪われていた計算になる。
まず、それが今では、チャットにURLを貼り付ける1分と。最終的な集計結果のグラフをチラッと確認する5分しかかからない。合計で月に6分です。
思わぬ副産物もあった。督促のタイミングがシステマチックに最適化されたことで。当初62%だった回答率が91%にまで跳ね上がったのです。
ある日の昼休み、給湯室で他部署のマネージャーから「最近のアンケート。スマホでパッと終わるからすごく楽になったよ。うちの部署の分も設定してくれない?」と頼まれた。あのWordの山に埋もれて絶望していた日々が完全に過去のものになったと実感し。思わず口元が緩んです。
GoogleフォームとGASで工数ゼロの自動集計
次に、ファイル添付の連続から抜け出し。完全に自動化された集計フローを構築する手順はシンプルだ。Googleフォームを使ってWordメール配布を廃止し。URLひとつで回答を集める環境を作る。GASのonFormSubmitトリガーを活用して。リアルタイム集計とサンクスメールの自動送信を実装する。GASで未回答者を社員マスタとの差集合で正確に検知し、督促メールを自動送信する。
この3ステップを踏むだけで。月次アンケートの担当者工数をほぼゼロに押し込むことが可能になる。数百人規模の大規模アンケートや、完全な匿名回答が求められるケースに直面した場合は。TayoriやSurveyMonkeyといった専用ツールへの発展的移行も視野に入ってくるはずだ。経費精算の自動化(経費精算×GoogleフォームとGASの記事)や勤怠例外申請のフロー(半休×振替休日の例外処理をGASで解決した記事)についても。同様のアプローチで身近な業務を一つずつ手放していってほしい。
関連リンクとチェックリスト
著者はこうして解決の糸口を見つけた
著者も同じ境遇から始まりました。独学でここまで自動化した道のりを参考にしてみてください。
学習サービスとアンケート
このスキルを活かしてさらに前へ進むなら
Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

