はじめに
この記事では、過去に公開した「定例作業スケジュール作成ツール」の仕様をベースに、現在でもVBAだけでカレンダーやルーチンワークのスケジュールを自動生成できるように再構成したサンプルコードを紹介します。
元となった外部配布ファイルが失われているため、本記事の仕様とサンプルコードをもとに手元のExcel上で再実装してご利用ください。
前提条件・仕様の仮定
- Excel 2010以降(VBAが有効な環境)
- 「カレンダー」シート:B3セルに「作成タイプ」を指定する構成とします。
- 「ルーチンワーク」シート:予定の開始日と終了日を持ち、期間指定によるゾーンでの予定入力を反映できるようにします。
再構成サンプルコード
以下のVBAコードをExcelの標準モジュールに貼り付けて実行することで、指定した条件に基づいたスケジュール作成のベース処理を行います。
Sub CreateSchedule()
' 処理の前提: 「カレンダー」および「ルーチンワーク」シートが存在すること
Dim wsCal As Worksheet
Dim wsRoutine As Worksheet
On Error GoTo ErrorHandler
Set wsCal = ThisWorkbook.Sheets("カレンダー")
Set wsRoutine = ThisWorkbook.Sheets("ルーチンワーク")
' 作成タイプの取得例
Dim createType As String
createType = wsCal.Range("B3").Value
' ここにスケジュール生成・転記のロジックを記述します
MsgBox "指定された作成タイプ: " & createType & " で処理を開始します。", vbInformation, "スケジュール作成"
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description, vbCritical, "エラー"
End Sub
使い方と実行手順
- Excelを開き、
Alt + F11キーを押してVBAエディタを起動します。 - 「挿入」>「標準モジュール」を選択し、上記のコードを貼り付けます。
- ワークシートに「カレンダー」および「ルーチンワーク」という名前のシートを作成します。
- 「カレンダー」シートのB3セルに作成タイプを入力します。
- マクロを実行し、ルーチンワークの開始日・終了日に基づいてスケジュールが正しく反映されることを確認します。
安全上の注意・後始末
- マクロを実行する前に、必ず作業中のブックのバックアップを取ってください。
- 組織のセキュリティポリシーによってはマクロ付きブック(.xlsm)の利用が制限される場合がありますので事前にご確認ください。
この記事の更新履歴
この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。
2026年10月1日
- 削除リンク切れとなった旧外部サイトのZIPファイルダウンロードリンクを削除しました。
- 追加記事記載の仕様を基にしたExcel VBAの再構成サンプルコードと実行手順を追加しました。

