← 記事一覧へ戻る

Excelの関数とマクロの違いは?勤怠表でわかる使い分け

Excelの関数とマクロは何が違うのか、勤怠表の残業・深夜計算を例にやさしく解説。「どこまで関数で、どこからマクロか」の境界線が、図解でひと目でわかります。

「マクロを使えばもっとラクになる」とよく聞くけれど、そもそも関数と何が違うのか、自分の作業のどこからがマクロの出番なのか、イメージしづらいですよね。

この記事では、毎月の勤怠集計を例に、関数とマクロの違いと使い分けを、図解でやさしく整理します。「どこまで関数で、どこからマクロか」がわかると、ムダに身構えずに効率化を進められます。

この記事でわかること

  • 関数とマクロの違いが「ひとこと」でわかる
  • 勤怠表を例に「どこまで関数・どこからマクロ」の境界線
  • マクロは自分で書けなくてもいい理由

結論:関数は「値」、マクロは「操作」

ざっくり言うと、こうです。

  • 関数=計算・判定して「」を出す道具
  • マクロ=並べ替え・保存・印刷などの「操作」を自動でやる道具

左は電卓で計算する「関数=値を出す」、右はロボットアームがボタン1つで動く「マクロ=操作を自動」の対比イラスト

勤怠表でいえば、労働時間や残業時間を計算するのは関数の仕事。一方、全員分の勤怠表を1ファイルずつ保存したり、まとめて印刷したりといった「操作」を自動でやるのがマクロの仕事です。

この「値か、操作か」が、いちばんの分かれ目です。

関数とマクロの違い(ひと目で比較)

関数とマクロを「ひとことで」「得意なこと」「勤怠表の例」「苦手なこと」「向いている場面」の5項目で比較した表

関数は「1枚を正確に作る」のが得意で、マクロは「同じ手順を何度も繰り返す」のが得意、と覚えておくと使い分けやすくなります。

できることは「階段」で増える

関数とマクロの間には、実はもう1段「差し込み印刷」という中間ステップがあります。できることが階段のように増えていくイメージです。

関数(値を出す)→差し込み印刷(量産・印刷)→マクロ(操作を自動)の3段階を階段で示し、差し込み印刷とマクロの間に「ここからマクロ」の境界線を引いた図

  • 🟢 関数:計算・判定・抽出(値を出す)
  • 🟡 差し込み印刷:同じ様式で量産・印刷する
  • 🔴 マクロ:一連の操作をボタン1つで自動実行する

「値を出す・流す」までは関数と差し込み印刷の出番。「操作そのものを自動化する」になったら、マクロの出番です。順番に見ていきましょう。

【関数でできること】勤怠表の計算と判定

勤怠表で「計算」と「判定」をするところまでは、関数だけでほぼ自動にできます。

Excelの勤怠表で、E列の労働時間、F列の残業(8時間超)、G列の深夜(22時以降)をIF関数で自動判定している画面。数式バーに =IF(E3>TIME(8,0,0), E3-TIME(8,0,0), 0) が表示されている

労働時間を出す

退勤から出勤と休憩を引くだけです。

=C2-B2-D2

8時間を超えた分を「残業」として判定する

IF を使うと、「8時間を超えたら超過分、超えなければ0」と自動で判定できます。

=IF(E2>TIME(8,0,0), E2-TIME(8,0,0), 0)

TIME(8,0,0) は「8時間ちょうど」という意味です。IF関数の基本は IF関数の使い方 でくわしく解説しています。

22時以降を「深夜」として印をつける

退勤が22時を過ぎたら印をつける、という判定も同じくIFでできます。

=IF(C2>TIME(22,0,0), "あり", "—")

月の合計を出す

1か月ぶんの残業時間の合計などは、SUMSUMIF でまとめられます(SUMIF・COUNTIFの使い方)。

ここまでで、「1人分の勤怠表」は関数だけでほぼ自動・正確に作れます。計算と判定は、関数の得意分野です。

【差し込み印刷でできること】全員分を同じ様式で量産

「全員分の勤怠表を、同じレイアウトで1人1枚ずつ印刷したい」——これくらいなら、マクロを使わなくても 差し込み印刷 で足ります。

Excelの一覧から、Wordのひな形に名前や数字を流し込んで、人数ぶんを一気に出力するイメージです。やり方は Wordの差し込み印刷で書類を一括作成する方法 と同じ要領です。

「同じ様式に、値を流して量産する」までが、この段階のゴールです。

【ここからマクロ】「操作」の自動化

次のような「操作の自動化」になると、関数や差し込み印刷では手が届きません。ここがマクロの出番です。

  • 全社員分を1人ずつ別ファイルにして「勤怠_氏名_2026-06」と名前を付けて保存する
  • 残業が多い人だけを抽出して、確認用のアラート表を作る
  • ボタン1つで「集計 → 並べ替え → PDF保存 → 印刷」を一気に通す

共通しているのは、ファイルを作る・分ける・保存する・印刷する・条件によって動きを変えるという「操作」を、人の代わりに実行している点です。これは関数では実行できない、マクロならではの領域です。

「これマクロ向きかも」を見抜くサイン

マクロを使ったことがないと、どこで使えばいいか想像しづらいもの。次のサインが出たら、マクロの出番かもしれません。

  • ✅ その作業、手順を口で説明すると 5ステップ以上ある
  • 毎日・毎週・毎月、同じ作業を繰り返している
  • ✅ マウスで コピー → 貼り付け → 並べ替え を手でやっている
  • 複数のファイルやシートを開いて、同じことをしている
  • ✅ 最後にいつも 印刷・PDF保存・別名保存 をしている

1つでも当てはまったら、「ここは自動化できるかも」と考えてみる価値があります。

マクロは「書けなくていい」

ここまで読むと「マクロって難しそう」と感じるかもしれません。でも、大事なのは自分で書ける力より、「どこを自動化できるか」を見抜く目のほうです。

中身のコードは、最近はAIツールにお願いして作ってもらう方法もありますし、詳しい人に頼むこともできます。まずは「この繰り返し作業、自動化できそうだな」と気づけるだけで、十分に第一歩です。

毎月の繰り返し作業を自動化したいけれど、設定やツールづくりは自分では大変——というときは、そのあたりを代わりに用意してもらう手もあります。(ご参考までに、僕はこうした業務効率化のお手伝いをしています → ココナラのサービスはこちら

よくある質問

Q. マクロはプログラミングが必要で難しいですか?

マクロの中身は「VBA」という言語で書かれます。ただ、自分でゼロから書けなくても、AIツールや詳しい人に作ってもらう方法があります。まずは「どの作業を自動化するか」を見極められれば大丈夫です。

Q. Mac版のExcelでもマクロは使えますか?

使えます。Windows/Macどちらもデスクトップ版のExcelならマクロが動きます。ただし、Windows版とは一部の機能や動きが違うこと、そして無料のブラウザ版(Web版)にはマクロが無いことに注意してください。

Q. マクロと差し込み印刷、どちらを使えばいいですか?

同じ様式の書類を、値を変えて量産・印刷するだけなら差し込み印刷で十分です。ファイルを1件ずつ分けて保存したり、条件によって動きを変えたりしたい場合はマクロが向いています。

Q. 全部、関数だけではできませんか?

計算や判定は関数だけで完結します。ただし、保存・印刷・ファイル作成などの「操作」は関数では実行できません。そこを自動でやるのがマクロの役割です。

まとめ

関数とマクロの違いは、ひとことで言うとこうです。

  • 関数=「値」を出す/マクロ=「操作」を自動でやる
  • 勤怠表なら、労働時間や残業の計算・判定は関数全員分の保存・印刷・抽出はマクロ
  • 「5ステップ以上」「毎月繰り返す」「最後に印刷・保存」が、マクロを考えるサイン
  • マクロは自分で書けなくてもいい。大事なのは「どこを自動化できるか」を見抜く目

まずは、いま手作業でやっている繰り返しの中から「これ自動化できそう」を1つ見つけるところから始めてみてください。

なお、ここで紹介した残業・深夜の判定を、実際に勤怠集計ツールにした例も公開しています → 勤怠集計を自動化してみた


関連記事: