エクセル日報を自動化する方法|関数・マクロ・フォーム連携と限界

エクセル日報を自動化する方法|関数・マクロ・フォーム連携と限界

毎日の日報作成、エクセルで手入力を続けていませんか。日付を打ち、項目を埋め、月末には全員分を集計する。1回は数分でも、積み重ねるとかなりの時間になります。

エクセルには自動化の手段がいくつも用意されています。関数、マクロ、フォーム連携。この記事ではコピーしてすぐ使える数式まで含めて、レベル別に解説します。

ただし先に、多くの記事が書いていない前提をお伝えします。エクセルの自動化でできるのは「整形」と「集計」までで、「入力」そのものは自動化できません。ここを理解しておかないと、手間をかけた仕組みが結局続かないことになります。

エクセル日報の自動化でできること・できないこと

作業 自動化 手段
日付・曜日の入力 できる 関数
作業時間の計算 できる 関数
月次集計・グラフ化 できる 関数・ピボット
ファイルの転記・整理 できる マクロ
スマホからの提出 できる フォーム連携
業務内容そのものの記入 できない

「今日何をしたか」を書く作業だけは、エクセルの機能では代替できません。ここが自動化の限界です。とはいえ周辺作業を削るだけでも負担はかなり減ります。順に見ていきます。

自動化の前に、項目そのものを見直す

自動化の前に日報管理を徹底見直し

数式を組み始める前に、1つだけ確認してください。その日報、項目が多すぎませんか。

自動化は「必要な作業を速くする」技術であって、「不要な作業をなくす」技術ではありません。使われていない項目が5つあるなら、関数を組むより先に削ったほうが効果は大きくなります。

次の基準で棚卸ししてください。

  • 過去3ヶ月、その項目を誰かが読んだか/読まれていないなら削除の候補
  • 他の項目から計算で出せないか/出せるなら入力させず数式に任せる
  • 集計に使っているか/使っていない自由記述は削るか任意にする

実務では、項目を7つから4つに減らすだけで入力時間が半分近くになることもあります。手を動かす前の5分の見直しが、いちばん費用対効果の高い自動化です。

レベル1:関数で自動化する

最も手軽で、マクロのような属人化リスクもありません。まずここから始めてください。

日付と曜日を自動表示する

ファイルを開いた日の日付を自動で入れます。

=TODAY()

曜日まで出したい場合は、セルの書式設定でユーザー定義に yyyy/m/d(aaa) と入力します。「2026/8/3(月)」の形で表示されます。

注意点があります。TODAY関数は開くたびに当日の日付に書き換わります。過去の日報を見返すと日付がずれるため、提出後は値貼り付け(Ctrl+Shift+V)で固定するか、後述のマクロで自動固定してください。

プルダウンで入力の手間を減らす

案件名や作業区分は、毎回タイプせず選択式にします。

入力欄を選択 →「データ」タブ →「データの入力規則」→ 入力値の種類を「リスト」→ 元の値に選択肢を指定。

これだけで入力時間が減り、表記ゆれもなくなります。「A社」「A社様」「A社さん」が混在すると集計できなくなるので、集計を見据えるなら必須の設定です。

作業時間を自動計算する

開始時刻と終了時刻から所要時間を出します。

=TEXT(C3-B3,”h:mm”)

B3が開始、C3が終了です。休憩を差し引くなら次のようにします。

=TEXT(C3-B3-D3,”h:mm”)

合計を数値で集計したい場合は、時刻のままだと扱いにくいので24を掛けて時間数に変換します。

=(C3-B3)*24

案件ごとに自動集計する

月末の集計を関数に任せます。

=SUMIF(A:A,”A社”,E:E)

A列の案件名が「A社」の行について、E列の時間を合計します。複数条件ならSUMIFS関数を使います。

=SUMIFS(E:E,A:A,”A社”,B:B,”設計”)

未入力を色で知らせる

提出漏れを防ぐ設定です。範囲を選択 →「ホーム」→「条件付き書式」→「新しいルール」→「数式を使用して…」を選び、次を入力します。

=AND($A3<>””,$E3=””)

日付は入っているのに作業時間が空欄の行に色が付きます。管理者が目視でチェックする手間がなくなります。

案件マスタから情報を自動で引っ張る

案件コードを入れるだけで、案件名や担当部署が自動で入るようにします。別シートに案件一覧を用意しておき、次の式を使います。

=XLOOKUP(A3,案件マスタ!A:A,案件マスタ!B:B,””)

XLOOKUPが使えない環境(Excel 2019以前)では、VLOOKUPで代用できます。

=IFERROR(VLOOKUP(A3,案件マスタ!A:B,2,FALSE),””)

IFERRORで囲んでおくと、未入力の行に「#N/A」が並ぶのを防げます。見た目のノイズが減るだけでなく、集計時のエラーも回避できます。

残業や長時間作業を自動で判定する

一定時間を超えた作業に印を付けます。

=IF(E3>8,”要確認”,””)

E3が作業時間(時間数)です。管理者が全行を目で追わなくても、確認すべき行だけが浮かび上がります。

月次集計はピボットテーブルに任せる

SUMIFを何十行も書くより、ピボットテーブルのほうが速くて壊れにくいです。

  1. 日報データの範囲を選択し「挿入」→「ピボットテーブル」
  2. 行に「案件名」、値に「作業時間」をドラッグ
  3. 列に「日付」を入れ、右クリック →「グループ化」→「月」を選択

これで案件別・月別の集計表が数十秒で完成します。元データが増えても、更新ボタンを押すだけで反映されます。数式を書き換える必要がないのが最大の利点です。

レベル2:マクロ(VBA)で自動化する

関数で足りない部分は、マクロで補えます。

マクロでできること

  • ボタン1つで当日分のシートを複製し、日付を自動入力する
  • 提出時に日付を値として固定する(TODAY関数の書き換わり対策)
  • 個人ファイルから集計ブックへ自動転記する
  • 指定フォルダのファイル名を日付順に一括変更する

特に効くのが転記の自動化です。20人分のファイルを開いてコピペする作業が消えるので、管理者側の負担が大きく減ります。

VBAが書けなくても「マクロの記録」で作れる

コードを書かずにマクロを作る方法があります。

  1. 「表示」タブ →「マクロ」→「マクロの記録」を選択
  2. マクロ名を付けて「OK」(この時点から操作が記録されます)
  3. 自動化したい操作を、いつもどおり手で実行する
  4. 終わったら「記録終了」
  5. 次回から「マクロ」→ 名前を選んで「実行」

シートの複製、書式の統一、印刷範囲の設定といった毎回まったく同じ手順の作業なら、これで十分に自動化できます。まずは記録機能で作ってみて、物足りなくなったらコードを覚える、という順序が現実的です。

マクロの落とし穴

ただしマクロには、導入前に知っておくべき弱点があります。

作った人しか直せません。社内でVBAを書ける人が1人しかいない状態でその人が異動すると、エラーが出た瞬間に業務が止まります。実際、これで日報運用が崩壊するケースは珍しくありません。

加えてマクロ付きファイル(.xlsm)はセキュリティ警告が出る、Web版Excelでは動かない、共有ドライブでの同時編集に弱いといった制約もあります。

マクロは「引き継げる人が2人以上いる」場合にだけ選んでください。

マクロの落とし穴 属人化と引き継ぎ問題

レベル3:フォーム入力に切り替える

エクセルにこだわらないなら、Googleフォームで入力画面を作り、回答をスプレッドシートに自動蓄積する方法があります。転記が不要になり、スマホからも提出できます。

設定手順とテンプレートは【無料】日報テンプレート完全ガイド|エクセル・スプレッドシート・Googleフォーム対応で解説しているので、そちらをご覧ください。

現場や外出先から提出させたい場合は、この方式が現実的な選択肢になります。

レベル4:入力そのものをなくす

ここまでの3つは、いずれも「人が入力する」ことが前提でした。関数もマクロもフォームも、入力を楽にはしますが、なくしはしません。

冒頭でお伝えしたとおり、エクセルの自動化には限界があります。日報作成でいちばん時間がかかるのは数式の計算ではなく、「今日何をしたか思い出して文章にする」作業だからです。

PC業務が中心の職場であれば、ここも自動化できます。どのアプリを何分使ったか、どのファイルをいつ編集したかといった操作ログは、本人が何もしなくても残っているためです。

日報AIポチは、このログをAIが読み解いて日報を自動作成する日報ツールです。担当者は何も入力しません。仕事をしていれば、一日の終わりには日報ができあがっています。

正直にお伝えすると、案件別の原価計算や工数集計を行う機能はありません。そこまで必要な場合は工数管理ツールが適しています。ただ「日報を書く時間そのものをなくしたい」のであれば、最短の手段になります。

📥 自動作成される日報を実際に見る

自動化でどれだけ時間が減るか

効果を数字で見ておきます。1人あたりの日報作成時間を10分、20人の組織、月20営業日として試算します。

段階 1人あたり 組織全体(月) 削減できる作業
現状(手入力) 10分 約67時間
レベル1(関数) 7分 約47時間 日付・計算・集計
レベル2(マクロ) 6分 約40時間 +転記・整理
レベル3(フォーム) 5分 約33時間 +集約・移動時間
レベル4(自動作成) 確認のみ +記入そのもの

※ 一般的な運用を想定した目安です。項目数や業種によって変わります。

注目していただきたいのはレベル1からレベル3までで、減るのが10分中5分にとどまる点です。残りの半分は「何をしたか思い出して文章にする」時間で、ここは仕組みを変えない限り削れません。

逆に言えば、関数を組むだけでも月20時間が浮きます。作業時間30分でこの効果なら、まず着手する価値は十分にあります。

どのレベルを選ぶべきか

いまの状況 おすすめ かかる手間
日付や計算を手打ちしている レベル1(関数) 30分
管理者が全員分を転記している レベル2(マクロ) 数日〜
現場・外出先から提出させたい レベル3(フォーム) 1時間
そもそも入力されない・続かない レベル4(自動作成) 導入のみ

順番に上げていく必要はありません。いま困っていることに対応するレベルだけ手をつけてください。使わない機能を作り込むと、メンテナンスの負担だけが残ります。

エクセル日報を自動化するときの3つの注意点

注意1:作った人しか分からない状態にしない

関数もマクロも、複雑にするほど属人化します。数式の意図をシート内にメモとして残す、マクロは処理内容をコメントで書く。この一手間が、担当者交代時に効きます。

注意2:ファイルが分散すると集計できない

個人ごとにファイルを持たせると、月末に必ず「最新版はどれか」問題が起きます。共有フォルダで1ファイル、シートを人別に分けるか、フォーム方式で1シートに集約する設計にしてください。

注意3:スマホから入力できない前提を忘れない

エクセルはスマホでの入力に向いていません。現場作業や外回りが多い職種では、どれだけ関数を作り込んでも「帰社してから入力」になり、記憶頼りの日報になります。

よくある質問

Q. エクセルで報告書を自動化するにはどうすればいいですか?

日報と同じ考え方です。日付はTODAY関数、選択項目はデータの入力規則、集計はSUMIFやピボットテーブルで自動化できます。定型の転記作業が多い場合はマクロが有効です。ただし文章そのものの作成は自動化できません。

Q. エクセルで日付を自動で変える関数は?

=TODAY() で当日の日付、=NOW() で日時が入ります。曜日を併記するなら、セルの書式設定でユーザー定義に yyyy/m/d(aaa) を指定してください。開くたびに更新されるため、記録として残すには値貼り付けで固定します。

Q. マクロは初心者でも作れますか?

簡単な繰り返し作業なら「マクロの記録」機能で作れます。操作を記録するだけでコードが生成されるので、VBAを書けなくても始められます。ただし条件分岐やエラー処理が必要になると知識が要ります。

Q. 無料で自動化できますか?

関数とマクロはエクセルの標準機能なので追加費用はかかりません。Googleフォーム+スプレッドシートも無料です。費用ではなく、作る時間と維持する手間がコストになると考えてください。

Q. スプレッドシートでも同じことができますか?

基本的な関数はほぼ同じで、TODAY・SUMIF・VLOOKUPはそのまま使えます。加えてGoogle Apps Script(GAS)を使えばマクロ相当の処理も組めます。共同編集とスマホ対応はスプレッドシートのほうが優れているので、複数人で使うならこちらが有利です。

Q. 自動化したのに日報が集まりません。なぜですか?

入力の手間が原因ではない可能性があります。「書く意味を感じていない」「フィードバックがない」といった運用の問題は、どれだけ自動化しても解決しません。仕組みを変える前に、提出された日報が誰にどう使われているかを現場に共有できているかを確認してください。

まとめ

エクセル日報の自動化は、関数から始めるのが最短です。日付の自動入力、プルダウン、時間の自動計算、条件付き書式。この4つだけでも、毎日の手間は目に見えて減ります。

ただし忘れてはいけないのは、エクセルで自動化できるのは「整形」と「集計」までだということです。「今日何をしたか」を思い出して書く時間は、関数でもマクロでも減りません。

そこが最大の負担になっているなら、自動化する対象を変える必要があります。

日報AIポチで日報作成を自動化しませんか?

無料でお問い合わせする