|
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 には確実にコメントが設定されている」ということが
>分かれば、単にその値を書き換えれば済む、というわけなのです。
|
|