予約管理は、業種を問わず多くの現場で必要とされる仕組みの一つです。美容室、クリニック、教室、会議室の利用など、日々の予約を正確に管理することで、顧客満足度の向上にも直結します。
本記事では、エクセルで予約表を作る手順と、マクロを使った自動化の方法について解説します。初心者の方でも実践できるよう、順を追って丁寧に説明します。
予約表をエクセルで作るメリット
予約表を作る方法としては、紙の台帳・クラウド予約システム・スプレッドシートなど様々なツールがあります。その中でもエクセルを使って予約表を作るのにはいくつかメリットがあります。
- パソコンにエクセルが入っていれば、導入コストがかからない
- カスタマイズ性が高い
- 誰でも使えるので社内での共有がしやすい
- 印刷や集計が容易
手作業だけで作っても十分に活用できる予約表を作成することができますが、さらにVBAマクロを活用することで、手作業の繰り返しを自動化し、効率化を図ることができます。
エクセルで予約表を作る基本ステップ
1. レイアウトを設計する
レイアウトは好みの形で作るのが良いですが、まずはシンプルなレイアウトで考えましょう。
例)1日ごとの時間帯予約表

縦軸に時間、横軸に日付を配置します。予約の内容はセル内に入力していきます。
2. 入力規則を設定して誤入力を防ぐ
予約内容などをあらかじめリスト化しておくと、入力ミスを防ぐことができます。

リストを作る手順は下記の通りです。
1.「データ」タブ →「データの入力規則」

2.「リスト」→「元の値」に、予約メニューや担当者名を入力

3. 条件付き書式で見やすくする
予約が入ったセルに色を付けるなど、視認性を高める工夫をしましょう。

「条件付き書式」→「新しいルール」→「数式を使用して、書式設定するセルを決定」で適用する範囲の先頭セル(今回だとB2)が空白でないときの条件を指定する。

マクロで予約表を自動化する
手作業での入力や管理に限界を感じたら、マクロ(VBA)の出番です。以下のような機能をマクロで自動化できます。
- 毎月の予約表を自動作成
- 予約一覧を別シートに集計
- ボタンひとつで空き枠を確認
ここでは、「次月の予約表を自動作成する」マクロの作り方を紹介します。
1. マクロの有効化
まずはファイルを「マクロ有効ブック(.xlsm)」形式で保存します。

1.「開発」タブがない場合は有効化する
2.「Alt + F11」もしくは「Visual Basic」ボタンをクリックし、VBEを開き「Module1」を作成する。

2. マクロのコード例(次月の予約表を作成)
Sub CreateNextMonthSheet()
Dim currentSheet As Worksheet
Dim newSheet As Worksheet
Dim nextMonthName As String
Set currentSheet = ActiveSheet
nextMonthName = Format(DateAdd("m", 1, Date), "yyyy-mm")
' すでに同名シートがあれば終了
On Error Resume Next
Set newSheet = Sheets(nextMonthName)
If Not newSheet Is Nothing Then
MsgBox "既に次月のシートは存在します。", vbExclamation
Exit Sub
End If
On Error GoTo 0
' シートコピーして名前変更
currentSheet.Copy After:=Sheets(Sheets.Count)
Set newSheet = ActiveSheet
newSheet.Name = nextMonthName
' セル内容のクリア(ヘッダー除く)
newSheet.Range("B2:Z100").ClearContents
MsgBox "次月の予約表を作成しました。", vbInformation
End Sub
3. ボタンで実行できるようにする
- 「挿入」→「フォームコントロール」→「ボタン」

2.作成したマクロ「CreateNextMonthSheet」を割り当て

これで、ボタンをクリックするだけで当月の予約表を複製し、次月の予約表のひな型を作成できます。

応用:空き状況の確認や印刷もマクロで可能
作りこめば、例えば、空いている時間帯を一覧で抽出するマクロや、1日の予約状況を印刷するマクロも作成可能です。
目的に応じて、以下のようなマクロを検討することができます。
- 予約が空いている時間帯だけを別シートに表示
- 印刷用にレイアウトを整えて自動印刷
- 特定の担当者ごとの予約を抽出
まとめ:エクセル×マクロで予約管理をスマートに
エクセルは、予約管理表を作るだけでなく、マクロで自動化することで業務の手間を大きく削減できます。
手作業での入力に限界を感じている方は、ぜひ今回紹介した方法を参考に、自分の業務に合った予約表を作ってみてください。
今後のステップ
- より複雑な機能が必要なら、ユーザーフォーム(入力画面)の導入もおすすめ
- GoogleフォームやWeb連携を検討する場合は、Google Apps Script(GAS)も選択肢に
- 業務内容に合わせた予約表のテンプレートを活用することで、効率はさらに向上します