アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のコードを走らせると実行時エラー91[オブジェクト変数またはwithブロック変数が設定されていません]となってしまいます。
On Error Resume Nextで回避出来るのですが、理由がわかりません。On Error Resume Nextで回避しなくともいいようにするにはどう直せばいいのでしょうか?

Sub Del_Comment()
Dim MyR As Range, C As Range
Set MyR = Cells.SpecialCells(xlCellTypeComments)
For Each C In MyR
C.Comment.Delete
Next
End Sub

A 回答 (1件)

merlionXXさん、いつも、スレッド汚してすみませんです。

(^^;
Wendy02です。

少なくとも、SpecialCellsは、On Error トラップなしでは、まともには使えませんね。
それと、今回のエラーの意味は、その状況が書かれていませんので、私には分かりません。

ただ、Cells というのは、ワークシートのプロパティに属するものですから、Cellsと、いきなり、そのままで使うと、モジュールの違いによって、実行時エラーが起こります。なるべく、Cellsは、シートを指定するか、以下のように、ActiveSheetなどとしたほうがよいです。

また、モジュールは、一般的に、Excelでは標準モジュールを使うようにお勧めします。

Sub Del_Comment2()
Dim cm As Comment
For Each cm In ActiveSheet.Comments
  cm.Delete
Next
End Sub
    • good
    • 0
この回答へのお礼

Wendy02さん、いつもためになる回答やご助言ありがとうございます。
おかげさまで無事解決です。

> 少なくとも、SpecialCellsは、On Error トラップなしでは、まともには使えませんね。

え、そうなんですか?
知らずに結構使ってました、大変!

お礼日時:2005/05/19 12:42

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