|
>おそらく隠す必要がないのでエラーになってしまうのだと思います。
>もちろん、エラーメッセージをそのまま終了してしまえば、
>改めてシートを開いたときには、H〜J列は非表示になっており、
>シート保護もパスワードで保護されてはいるのですが、
>このエラーメッセージを表示させずに終了したいのです。
動作の確認をしていませんが、エラーの原因が解っているようなので、
その原因を1個1個取り除いていけば良いと、素直に考えればいいんじゃないかと思います。
Sub aaaa() '注
Dim Ragcol As Range, Flg As Boolean
For Each Ragcol In Columns("H:J")
If Ragcol.Hidden = True Then
Flg = True
End If
Next
If Flg = True Then
MsgBox "非表示列があります。"
Else
MsgBox "全表示"
End If
End Sub
Sub bbbb()
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Worksheets
If Sh.ProtectContents Then
MsgBox Sh.Name & "が、保護されています。"
End If
Next
End Sub
注)
ど素人や、表面だけ格好つけたがる人は、下記のように
なんでも一括で書きたがる傾向がありますが、常に全く同じようにH:J列そろって、
非表示になっているとは考えられないので、面倒でも1列づつチェックした方が良い。
と、私は思っています。
If Columns("H:J").EntireColumn.Hidden = True Then
MsgBox "非表示"
Else
MsgBox "表示"
End If
|
|