カテゴリー
Microsoft

【Excel VBA】ワークシートの入力内容をすべて削除してリセットするコード♪

ポイント

  • Range.Clear メソッドは次のメソッドの内容を含む。
    • Range.ClearComments メソッド → コメント
    • Range.ClearNotes メソッド → コメント
    • Range.ClearContents メソッド → 値と数式
    • Range.ClearFormats メソッド → 書式 (色や罫線、条件付き書式など)
    • Range.ClearOutline メソッド → ハイパーリンク
  • Range.ClearNotes メソッドと Range.ClearContents メソッドの処理は同じで、コメント削除 (詳細な検証はしていない)
  • リセット対象のワークシートをアクティブにする必要はない。
  • Range.Value = "" でもリセットが可能。ただし、Range.ClearContents メソッドならば計算式も更新される一方、Range.Value = "" は対象 Range を参照している計算式が更新されない。そのため、基本的に Range.ClearContents メソッドを使うのがよい。

準備

ワークシート “Sheet1” に次の内容を書き込んだセルを用意する。

  • 文字列
  • 太字の書式付きセル
  • コメント付きセル
  • 罫線つきセル
  • ハイパーリンク付きセル
  • テキストボックス
  • 図形
  • 画像

これらをすべて VBA からまっさらに削除してリセットいたします♪

VBA コード

標準モジュールを挿入し、呼び出して使えるようにいたします。

Option Explicit

''' <summary>
''' 指定ワークシートを初期化します。
''' すべてのセルの値、数式、書式 (色や罫線、条件付き書式など)、コメント、ハイパーリンク、
''' ワークシート上のアウトライン、画像、図形を削除します。
''' </summary>
''' <param name="strWorksheet">対象ワークシート名</param>
Public Sub InitializeSheet(ByVal strWorksheet As String)
  With Worksheets(strWorksheet)
    .DrawingObjects.Delete
    .Cells.Clear
    .Cells.ClearOutline
  End With
End Sub

次に、確認用のコードです。

Option Explicit

Public Sub Test()
  Call RangeInitializer.InitializeSheet("Sheet1")
End Sub

おわりに

「vba ワークシート クリア」などの単語で検索して調べておりました。難しくは無いのと感じましたけれども、どこまで削除すればワークシートをクリアしたことになるのか、ここは少し複雑思いましの。

以下、参考ページです。ありがとう存じます♪

また、次は公式ドキュメントですの。

以上です。

コメントを残す