ここまでの Configシート制御 をさらに拡張して「複数の処理パターンをプリセットとして切り替えられる」仕組みを作りましょう。これでユーザーは Config シートで「モード」を選ぶだけで、処理内容を一括切替できます。
Configシートの設計例
Config シートに以下のような設定を置くとします:
| 設定項目 | 値 | 説明 |
|---|---|---|
| Mode | Pattern1 | 実行するプリセット名 |
| TargetCol | C | 処理対象列(例:C列=金額列) |
プリセット定義(例)
- Pattern1 → 金額ゼロセル赤枠 + NG→OK変換
- Pattern2 → 背景色黄色セルクリア + NG→OK変換
- Pattern3 → 金額ゼロセル赤枠のみ
1. クラスモジュール(clsCellProcessor)
(前回の HighlightZero / ReplaceNG / ClearYellow を利用)
2. ThisWorkbook モジュール(イベント駆動型)
Private Sub Workbook_Open()
Dim ws As Worksheet
Dim proc As clsCellProcessor
Dim cfg As Worksheet
Dim targetCol As String
Dim mode As String
' Configシートを参照
Set cfg = ThisWorkbook.Sheets("Config")
mode = UCase(cfg.Range("B2").Value) ' Mode
targetCol = cfg.Range("B3").Value ' TargetCol
Set proc = New clsCellProcessor
' 全シートに対して処理
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Config" Then
proc.TargetRange = ws.Range(targetCol & "2:" & targetCol & ws.Cells(ws.Rows.Count, targetCol).End(xlUp).Row)
Select Case mode
Case "PATTERN1"
proc.HighlightZero
proc.ReplaceNG
Case "PATTERN2"
proc.ClearYellow
proc.ReplaceNG
Case "PATTERN3"
proc.HighlightZero
Case Else
MsgBox "ConfigシートのMode設定が不正です: " & mode
End Select
End If
Next ws
End Sub
VB動作イメージ
- ブックを開いた瞬間に
Workbook_Openが走る - Configシートの
Modeに応じて処理パターンを切り替え - ユーザーは Mode を「Pattern1」「Pattern2」「Pattern3」に変更するだけで挙動を変えられる
実務でのメリット
- プリセット切替 → ユーザーがモードを選ぶだけで処理内容を変更可能
- 柔軟性 → 新しいパターンを追加するのも簡単(Select Case に追記するだけ)
- 運用効率化 → コード修正不要で現場のニーズに対応
練習課題
- Pattern4 を追加して「売上列合計をMasterシートに出力」する処理を組み込む
- Configシートに「対象シート名リスト」を追加して、特定シートだけ処理するように拡張
- Mode を「CheckOnly」「Fix」に分けて、チェックだけ or 修正までを切り替える
こうして クラス × イベント駆動 × Configシート × プリセット切替 を組み合わせると、ユーザーが設定を変えるだけで複数の処理パターンを自在に切り替えられる、まさに 実務で超使える自動化フレームワークになります。

