ワークシートを初期化したい
マクロで計算処理実行後、特定のシートに計算結果を入力するケースは多いです。
その場合にワークシートの初期化は必須です。
正常に初期化しないと、データにゴミが入ってしまう不具合が発生します。
ワークシートを初期化するサンプルコード
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】
コメント