| 
    
     |  | Keinさん、丁寧なご指導ありがとうございました。 おかげで無事に仕様通りできました。
 また、「Intersect」も『なるほど、なるほど、、』とパソの
 前で手を叩いておりました。
 
 ▼Kein さん:
 >>シートの保護有無確認をして保護が掛かっていれば、外して
 >という処理も含めるなら、変数の宣言に
 >
 >Dim Flg As Boolean
 >
 >を追加し
 >
 >For Each SH In Worksheets
 >  Flg = False
 >  If SH.Name = "INDEX" Then GoTo NLine
 >  If SH.ProtectContents Then
 >   Flg = True: SH.Unprotect
 >  End If
 >  On Error Resume Next
 >  If Intersect(SH.Cells.SpecialCells(-4144), SH.Range("H4")) Is _
 >  Nothing Then GoTo NLine
 >  SH.Range("H4").Comment.Text "コメント"
 >NLine:
 >  If Err.Number <> 0 Then Err.Clear
 >  On Error GoTo 0
 >  If Flg Then SH.Protect
 >Next
 >
 >と、します。
 >>ここで何故このコードが必要なのか
 >ループしている各シートの H4 セルが、確実にコメントをつけているかを確認
 >するためです。例えば「対象のセルに数式が含まれているか ?」という判定なら
 >HasFormulaプロパティの値を調べればよいのですが、HasCommentというプロパティ
 >はありませんから、SpecialCellsメソッドでコメントをつけたセルをピックアップし、
 >それと H4 が重なっているかを見て、コメントの有無を調べているわけです。
 >そうした判定によって「H4 には確実にコメントが設定されている」ということが
 >分かれば、単にその値を書き換えれば済む、というわけなのです。
 
 |  |