【VBA】非表示シートを配列を使って高速に置換する方法
手作業では時間がかかる非表示シートの置換作業を、VBAを使って高速に自動化しましょう!この記事では、配列を使用して非表示シートを効率的に置換する方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub ReplaceHiddenSheets()
Dim ws As Worksheet, arrOldNames() As Variant, arrNewNames() As Variant, i As Long
Application.ScreenUpdating = False
' 非表示シートの名前を配列に格納
ReDim arrOldNames(1 To ActiveWorkbook.Sheets.Count)
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden Then
i = i + 1
arrOldNames(i) = ws.Name
End If
Next ws
' 新しいシート名を配列に格納
ReDim arrNewNames(1 To UBound(arrOldNames))
For i = LBound(arrOldNames) To UBound(arrOldNames)
arrNewNames(i) = "Sheet" & CStr(i + 100) ' 新しいシート名を適宜変更
Next i
' 配列の要素数分だけループして、非表示シートを置換
For i = LBound(arrOldNames) To UBound(arrOldNames)
ThisWorkbook.Sheets(arrOldNames(i)).Name = arrNewNames(i)
Next i
Application.ScreenUpdating = True
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。