Excelの関数とマクロの違いは?勤怠表でわかる使い分け
Excelの関数とマクロは何が違うのか、勤怠表の残業・深夜計算を例にやさしく解説。「どこまで関数で、どこからマクロか」の境界線が、図解でひと目でわかります。
「マクロを使えばもっとラクになる」とよく聞くけれど、そもそも関数と何が違うのか、自分の作業のどこからがマクロの出番なのか、イメージしづらいですよね。
この記事では、毎月の勤怠集計を例に、関数とマクロの違いと使い分けを、図解でやさしく整理します。「どこまで関数で、どこからマクロか」がわかると、ムダに身構えずに効率化を進められます。
この記事でわかること
- 関数とマクロの違いが「ひとこと」でわかる
- 勤怠表を例に「どこまで関数・どこからマクロ」の境界線
- マクロは自分で書けなくてもいい理由
結論:関数は「値」、マクロは「操作」
ざっくり言うと、こうです。
- 関数=計算・判定して「値」を出す道具
- マクロ=並べ替え・保存・印刷などの「操作」を自動でやる道具

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

関数は「1枚を正確に作る」のが得意で、マクロは「同じ手順を何度も繰り返す」のが得意、と覚えておくと使い分けやすくなります。
できることは「階段」で増える
関数とマクロの間には、実はもう1段「差し込み印刷」という中間ステップがあります。できることが階段のように増えていくイメージです。

- 🟢 関数:計算・判定・抽出(値を出す)
- 🟡 差し込み印刷:同じ様式で量産・印刷する
- 🔴 マクロ:一連の操作をボタン1つで自動実行する
「値を出す・流す」までは関数と差し込み印刷の出番。「操作そのものを自動化する」になったら、マクロの出番です。順番に見ていきましょう。
【関数でできること】勤怠表の計算と判定
勤怠表で「計算」と「判定」をするところまでは、関数だけでほぼ自動にできます。

労働時間を出す
退勤から出勤と休憩を引くだけです。
=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か月ぶんの残業時間の合計などは、SUM や SUMIF でまとめられます(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つ見つけるところから始めてみてください。
なお、ここで紹介した残業・深夜の判定を、実際に勤怠集計ツールにした例も公開しています → 勤怠集計を自動化してみた。
関連記事: