【VBA】非表示シートを配列を使って高速に値をクリアする方法
毎回手作業で非表示シートのデータを消去するのは時間がかかるだけでなく、ミスも起こりやすいです。この記事では、配列を使用して高速に非表示シートのデータをクリアするVBAマクロを作成し、業務効率化をお手伝いします。
サンプルコード
VBA
Option Explicit
Sub ClearHiddenSheetValues()
Dim ws As Worksheet
Dim lastRow As Long, i As Long
Dim dataRange As Range
Dim dataArray() As Variant
' 非表示シートを取得
Set ws = ThisWorkbook.Sheets("Sheet1")
If Not ws Is Nothing Then
If ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' データ範囲を取得
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Set dataRange = ws.Range("A2:A" & lastRow)
' 配列にデータを読み込む
ReDim dataArray(1 To dataRange.Rows.Count, 1 To dataRange.Columns.Count)
dataRange.Value = dataArray
' データ範囲をクリア
ws.Range("A2:A" & lastRow).ClearContents
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End If
Else
MsgBox "指定されたシートが存在しません。", vbExclamation, "エラー"
End If
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。