- ベストアンサー
エクセルVBA コメントが削除できない
エクセル2000です。 シート内のすべてのコメントを削除しようと以下のコードを走らせたところ、何番目かでエラーが起き、とまってしまいます。 シート保護は解除してあります。 コメントはすべて同じような書式なのでなぜ途中で止まるのかわかりません。ご教示いただければ幸いです。 Sub TEST() With ActiveSheet For i = 1 To .Comments.Count MsgBox i .Comments(i).Delete'ここでエラー Next i End With End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
削除されるとそのコメント番号がつまるので、回数分1番を削除すればいいので、 .Comments(i).Delete を .Comments(1).Delete に変更する。
その他の回答 (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
質問者
お礼
ありがとうございました。 For Each cm In .Comments cm.Delete Next では、ちゃんと消せるのにへんだなあと思ったら、そういう理屈でしたね。 お馬鹿な質問でした。 すみません。
お礼
なるほど、言われてみればその通りですね。 では With ActiveSheet For i = .Comments.Count To 1 (Step -1) .Comments(i).Delete Next i End With でもいいですね、ありがとうございました。