| 
    
     |  | >おそらく隠す必要がないのでエラーになってしまうのだと思います。 >もちろん、エラーメッセージをそのまま終了してしまえば、
 >改めてシートを開いたときには、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
 
 
 |  |