VBATips

ワークシートの初期化処理をパーツ化する【ExcelVBA】

ワークシートを初期化したい

マクロで計算処理実行後、特定のシートに計算結果を入力するケースは多いです。
その場合にワークシートの初期化は必須です。
正常に初期化しないと、データにゴミが入ってしまう不具合が発生します。

ワークシートを初期化するサンプルコード

cells.Clearで全て削除をします。ws.UsedRange.Clearでも同様と考えます。

Public Function call_SheetInit(ws As Worksheet)
  '■下記コードでシート全てのCellをクリアする(ClearContentsならValueだけ初期化可能)
    ws.Cells.Clear
End Function

実際の使い方

Public Sub sample()

    '■通常の使い方
     Call call_SheetInit(”Sheet1”)   'Sheet1をワークシート初期化

    '■変数に格納したワークシートを初期化
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet2")
     Call call_SheetInit(ws)        'ws(Sheet2)をワークシート初期化
   
End Sub

注意点

  • パーツ化する程の事でもない単純なコードですが、
    コードを分けておくことで、メインコード内に共通認識ができあがります。
    共通認識が出来上がるということは、共同の開発者や他のマクロ内でも作業の効率化が出来ます。
  • 処理スピードをアップさせる場合は前後に Application.ScreeenUpdating を入れ、画面の更新を抑制してください。
    パーツ化しているものもあるので、下記コードをメインコード内に埋め込めば、便利です。
    「マクロ処理を高速化する」をパーツ化する【ExcelVBA】

関連記事

【VBA基本】セルやセル範囲の値を消去する【Clearメソッド】
指定行(ヘッダー行)以下を全て削除する【ExcelVBA】
結合セルの初期化(ClearContents)のエラーを回避する
ワークシートを削除する【Deleteメソッド】【ExcelVBA】

コメント

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