【OCN】1GBプレゼントCP中!

エクセル2000です。
シート内のすべてのコメントを削除しようと以下のコードを走らせたところ、何番目かでエラーが起き、とまってしまいます。
シート保護は解除してあります。
コメントはすべて同じような書式なのでなぜ途中で止まるのかわかりません。ご教示いただければ幸いです。

Sub TEST()
With ActiveSheet
For i = 1 To .Comments.Count
MsgBox i
.Comments(i).Delete'ここでエラー
Next i
End With
End Sub

gooドクター

A 回答 (2件)

削除されるとそのコメント番号がつまるので、回数分1番を削除すればいいので、


.Comments(i).Delete

.Comments(1).Delete
に変更する。
    • good
    • 0
この回答へのお礼

なるほど、言われてみればその通りですね。

では
With ActiveSheet
For i = .Comments.Count To 1 (Step -1)
.Comments(i).Delete
Next i
End With
でもいいですね、ありがとうございました。

お礼日時:2008/09/01 14:29

こんにちは。


以下のように変更してみてください。

Sub TEST()
  With ActiveSheet
  For i = 1 To .Comments.Count
    MsgBox i
    .Comments(1).Delete   'i→1に変更
  Next i
  End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
For Each cm In .Comments
cm.Delete
Next
では、ちゃんと消せるのにへんだなあと思ったら、そういう理屈でしたね。
お馬鹿な質問でした。
すみません。

お礼日時:2008/09/01 14:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング