Excel VBA 逆引き集 | 初期値リセット

Excel VBA
スポンサーリンク

ねらい:初期値リセットで「いつでも同じ状態からスタート」

Excelマクロを使うときに「前回の値や色が残っていて誤動作する」「入力欄を毎回手で消すのが面倒」という経験はありませんか?そこで便利なのが 初期値リセット。ボタンひとつで「入力欄を空にする」「色を元に戻す」「変数や設定を初期状態に戻す」ことができます。初心者でも理解できるように、コード例とテンプレートをかみ砕いて解説します。


基本テンプレート:入力欄を空にする

Sub ResetInputCells()
    Dim ws As Worksheet
    Set ws = Worksheets("Input")
    
    ' A2:E100 の値をクリア
    ws.Range("A2:E100").ClearContents
    
    MsgBox "入力欄を初期化しました。"
End Sub
VB

重要ポイント(深掘り)

  • ClearContentsClear の違い:
    • ClearContents → 値と数式だけ消す。書式は残る。
    • Clear → 値・書式・コメントなど全部消す。
  • 初心者はまず ClearContents を使う: 見た目は残して中身だけ消す方が安全。

応用テンプレート:色や書式もリセット

Sub ResetFormats()
    Dim ws As Worksheet
    Set ws = Worksheets("Input")
    
    ' 範囲の書式をクリア(値は残す)
    ws.Range("A2:E100").ClearFormats
    
    ' 背景色を白に戻す
    ws.Range("A2:E100").Interior.Color = vbWhite
    
    MsgBox "書式を初期化しました。"
End Sub
VB

重要ポイント(深掘り)

  • ClearFormats: 背景色・罫線・フォントなどを消す。値は残る。
  • 背景色を明示的に指定: 白に戻すなど、見た目を統一する。
  • 業務帳票では「値は残すが色だけリセット」がよく使われる。

変数や設定の初期化(マクロ内部)

Sub ResetVariables()
    Dim total As Long
    Dim nameList As Collection
    
    ' 初期値を設定
    total = 0
    Set nameList = New Collection
    
    MsgBox "変数を初期化しました。"
End Sub
VB

重要ポイント(深掘り)

  • 変数は必ず初期化: 前回の値が残っていると誤計算の原因になる。
  • CollectionやDictionaryは New で作り直す: 古いデータを消して新しい状態に。

一括リセット:入力欄+書式+フィルタ

Sub ResetAll()
    Dim ws As Worksheet
    Set ws = Worksheets("Input")
    
    ' 値を消す
    ws.Range("A2:E100").ClearContents
    
    ' 書式を消す
    ws.Range("A2:E100").ClearFormats
    
    ' フィルタ解除
    If ws.AutoFilterMode Then
        ws.AutoFilterMode = False
    End If
    
    MsgBox "入力欄・書式・フィルタを初期化しました。"
End Sub
VB

重要ポイント(深掘り)

  • フィルタ解除: フィルタが残っていると「データが消えた」と誤解される。初期化時に必ず解除。
  • 一括処理: 「値+書式+フィルタ」をまとめてリセットすると安心。

例題で練習

  1. 例1: ResetInputCells を実行 → A2:E100 の値が消える。
  2. 例2: ResetFormats を実行 → 背景色や罫線が消え、白に戻る。
  3. 例3: ResetAll を実行 → 値・書式・フィルタが全部リセットされる。

実務の落とし穴と対策

  • 落とし穴1:範囲を広く指定しすぎて必要なデータまで消す
    • 対策: 必要な範囲だけ指定。最終行を自動取得して範囲を決めると安全。
  • 落とし穴2:書式まで消して帳票が崩れる
    • 対策: 値だけ消すなら ClearContents。書式は残す。
  • 落とし穴3:フィルタ解除を忘れる
    • 対策: 初期化時に必ず AutoFilterMode = False を入れる。
  • 落とし穴4:変数初期化を忘れる
    • 対策: マクロ開始時に必ず初期化処理を入れる。

スターター手順

  1. まずは入力欄の値を消すClearContents)。
  2. 次に書式リセットを追加ClearFormats)。
  3. フィルタ解除も組み合わせる
  4. 最後に一括リセットマクロを作り、ボタンに割り当てる

タイトルとURLをコピーしました