- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAのRangeオブジェクトについて)
VBAのRangeオブジェクトについて
このQ&Aのポイント
- VBAのRangeオブジェクトについてご教示ください。ExcelのRangeオブジェクトは特定の範囲を表すオブジェクトで、セルやセル範囲を操作するための機能を提供します。具体的には、セルの値の取得や設定、セルの書式設定、セル範囲の結合や分割などが可能です。
- セル削除後のRangeオブジェクトの扱い方についてお尋ねします。Rangeオブジェクトを生成した後、参照先のセルが削除された場合に条件分岐の処理を行いたいですが、どのように処理すればよいでしょうか?Rangeオブジェクトのプロパティを参照した時点でエラーが発生してしまいます。参照先のセルが消されたかどうかを判別する方法があるのでしょうか?
- 例えば、以下のようなコードを考えます。Subルーチン内でRangeオブジェクトを生成し、それに対してセルの操作を行います。しかし、Rangeオブジェクト生成後に参照先のセルが削除された場合、エラーが発生してしまいます。参照先のセルが消されたかどうかを判別する方法があるのでしょうか?
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (7)
- WindFaller
- ベストアンサー率57% (465/803)
回答No.7
- x-1919
- ベストアンサー率52% (91/173)
回答No.6
- cj_mover
- ベストアンサー率76% (292/381)
回答No.5
- WindFaller
- ベストアンサー率57% (465/803)
回答No.4
- ki-aaa
- ベストアンサー率49% (105/213)
回答No.3
- cj_mover
- ベストアンサー率76% (292/381)
回答No.2
- cj_mover
- ベストアンサー率76% (292/381)
回答No.1
お礼
>cj_mover様、ki-aaa様、WindFaller様、x-1919様 皆様、色々な見解及びご指摘、本当にありがとうございました。 お礼が遅くなりました事をまず深くお詫びいたします。 私が知りたい状況は、x-1919様がおっしゃっている状態にあります。 Excel VBAで大昔に作られた既存の古いPGの回収作業で、 「Rangeオブジェクト生成後、長い処理中にユーザーがシートを操作できる状態の時があって、参照先のセルが削除された後に既存ロジック内でそのRangeオブジェクトを参照するとエラーで落ちる」状態にあるので、On error文ではなく、何らかの手法やAPI関数等で回避する方法があるのかなと思った次第です。 >cj_mover様 No.1で答えは出ていたのですね。 意図を深く読み取れずに申し訳ありませんでした。 >ki-aaa様 Is Nothingは試してみたのですが、No.5でcj_mover様がおっしゃるとおり、Falseが返ってきました。 不思議だったのが、参照先を手動で削除後、Rangeオブジェクトに対するプロパティ等を参照するとエラーが発生するのは分かるのですが、TypeName関数等で調べるとしっかりRangeと出てくるんですよね。。。 オブジェクトの型自体は生きている(?)のに、プロパティを参照した瞬間に実行時エラーとなってしまうのが不思議でした。 やはりOn Error Resume Nextでエラーを回避しつつやるしか方法はなさそうですね。 皆さん、色々とありがとうございました。 感謝致します。