• ベストアンサー

エクセルVBA コメントが削除できない

エクセル2000です。 シート内のすべてのコメントを削除しようと以下のコードを走らせたところ、何番目かでエラーが起き、とまってしまいます。 シート保護は解除してあります。 コメントはすべて同じような書式なのでなぜ途中で止まるのかわかりません。ご教示いただければ幸いです。 Sub TEST() With ActiveSheet For i = 1 To .Comments.Count MsgBox i .Comments(i).Delete'ここでエラー Next i End With End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • hotosys
  • ベストアンサー率67% (97/143)
回答No.1

削除されるとそのコメント番号がつまるので、回数分1番を削除すればいいので、 .Comments(i).Delete を .Comments(1).Delete に変更する。

merlionXX
質問者

お礼

なるほど、言われてみればその通りですね。 では With ActiveSheet For i = .Comments.Count To 1 (Step -1) .Comments(i).Delete Next i End With でもいいですね、ありがとうございました。

その他の回答 (1)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

こんにちは。 以下のように変更してみてください。 Sub TEST()   With ActiveSheet   For i = 1 To .Comments.Count     MsgBox i     .Comments(1).Delete   'i→1に変更   Next i   End With End Sub

merlionXX
質問者

お礼

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