【VBA】非表示シートを安全に置換する方法
日々の業務で大量のデータを扱う場合、非表示にしたシートを別のシートと交換したいことはよくあります。しかし、この操作は手作業では時間がかかるだけでなく、ミスが発生しやすいです。そこで、VBAを使用して効率的に非表示シートを置き換え、エラー処理も含めて安全に実行する方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub ReplaceHiddenSheet()
Dim ws As Worksheet, targetWs As Worksheet
Dim sheetName As String
' 非表示シートの名前を指定
sheetName = "HiddenSheet"
On Error GoTo ErrorHandler
Set ws = ThisWorkbook.Sheets(sheetName)
If Not ws Is Nothing Then
Application.ScreenUpdating = False
For Each targetWs In ThisWorkbook.Sheets
If targetWs.Name <> sheetName Then
' 非表示シートを他のシートと置き換える処理
With ws
.Move Before:=targetWs
.Visible = xlSheetHidden
End With
End If
Next targetWs
Else
MsgBox "指定したシート名が存在しません。", vbExclamation, "エラー"
End If
ExitHere:
Application.ScreenUpdating = True
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbCritical, "エラーハンドリング"
Resume ExitHere
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。それでも問題がある場合は、エラーメッセージの内容を元に修正を行ってください。