盲点でしたw
メモとして残します。
状況
For Eachでワークシートを検索して、特定のワークシートに対してセル書式変換を行う。
Dim k As Integer: k = 1
For Each sh In WorkSheets
If sh.Name = "XXXXX" Then
sh.Range(Columns(1), Columns(1)).NumberFormat = "@"
End If
Next
発生した事象
sh.Range(Columns(1), Columns(1)).NumberFormat = "@"
解決方法
処理対象のシートをアクティブにする。
アクティブでないシートに対しての処理はエラーとなってしまうため。
Dim k As Integer: k = 1
For Each sh In WorkSheets
If sh.Name = "XXXXX" Then
sh.Activate '追加
sh.Range(Columns(1), Columns(1)).NumberFormat = "@"
End If
Next