
エクセルでOLEObjectを削除するコードを、
ブレークポイントを設置して実行すると、
デバッグモードでやると「中断モードでは入力できません」となります。
(エクセル2007です)
例えば、
Sub オブジェクト削除()
ActiveSheet.OLEObjects.Delete
Selection.Value = "a"
End Sub
で、「Selection.Value = "a"」の部分にブレークポイントを設置して、
F8で一行ずつ実行していこうとすると画像のようになります。
なぜなのでしょうか?
今サンプルで提示したコードは短いのでいいのですが
実際のコードはもっと長いので、
ステップインでコードの動きを見ていきたいのですが
ActiveSheet.OLEObjects.Delete
の部分で、エラーになってしまいます。
その際、「継続」と「終了」のどちらを選んでもOLEObjectsは削除されます。
「終了」の場合はその次のコードの、
Selection.Value = "a"
は実行されません。
ブレークポイントを設置せず、F5で一気に実行する場合はエラーになりません。
コードの中に、
ActiveSheet.OLEObjects.Delete
があってもステップインで実行しても中断させない方法を教えてください。

No.2ベストアンサー
- 回答日時:
OLEObject というのは、Excel外のオブジェクトで、Excelと関係が結ばれているのを、切るのですから、その切れる過程をみることはできません。
あくまでも、これは実務上のことですが、実際に、私もマクロ作成中に、そういうことに出会います。
役に立たない知識かもしれませんが、私の不確かな記憶ですが、OLEObjectの削除の場合、一瞬、マクロの実行が途切れて、その時にオブジェクトが削除されるはずです。だから、その削除前で止めるのは可能でも、事後で止めるというのは、マクロとして成り立たないことになる、というような解釈をしていました。
私は、そういう時、コードの進展をみるために、その部分に以下のようなダミーを置いて、実行後の様子をみます。
例:
Sub オブジェクト削除()
MsgBox "ActiveSheet.OLEObjects.Delete"
Stop 'ブレークポイントの代わり(恒久的)
End Sub
なお、Excelでは、Select したものを、橋渡しして処理する時に、Selection は使われますが、Rangeオブジェクトなど、明示的に使うことが多いので、Excel VBAでは、特殊な裏ワザ的なコードにしか使われません。逆に言うと、Excelでは、"Select" するということは、シートオブジェクト以外では、あまり使いません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
VBAで既に開いている別アプリケ...
-
テキストボックス中の文字列の...
-
Excel VBAでIEにアクセスするプ...
-
「オブジェクト変数または With...
-
実行時エラー 3265「要求された...
-
UserForm1.Showでエラーになり...
-
AccessVBAで「dim dbs as datab...
-
アクセスにてオブジェクト名変...
-
textBox isNot Nothing とは
-
ExcelVBAでのNZ関数について
-
VBAからPDFファイルにパスワー...
-
ADO 「NEW」の意味、必要性
-
エクセル/保護したシート上の埋...
-
EXCEL VBA オートシェイプナン...
-
エクセルマクロエラー「'Cells'...
-
(初心者です)VBAについて。「実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
テキストボックス中の文字列の...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
実行時エラー 3265「要求された...
-
上下の位置揃えについて
-
ExcelVBAでのNZ関数について
-
VBAで既に開いている別アプリケ...
-
VBAで Set wb = Sheets(1).Cop...
-
AccessVBAで「dim dbs as datab...
-
EXCEL VBA オートシェイプナン...
-
オブジェクト変数またはWITHブ...
-
[VBA]CDOメッセージ送信エラー
-
エクセルマクロエラー「'Cells'...
-
findメソッドの変数について
-
オブジェクトが見つかりません
-
ある文字列が全て数字であるか...
-
オブジェクト変数の取得について
-
CreateObjectとGetObjectの違い
おすすめ情報