この質問については、次の投稿を参照して自分自身を明確にし
ます。 VBA によって追加されたときに条件付き書式がオフセットされるのはなぜですか?
最近目にする非常に多くの投稿で、OP は暗黙のうちに .Activate、.Select、.Offset などの使用を許可されていますが、潜在的なバグ (ほとんどの場合、エンド ユーザーが原因) への扉が開かれています。
コードがサポートされることもあります。
私の質問: これらのステートメントに起因する典型的なバグをキャッチする直接的な代替手段がない場合、これらのステートメントのいずれかを使用する有効な状況はありますか?
私の意見では、Excel 用に開発する際に必須の動的ソリューションについて言及しています。個人的には、6 年以上の間、私がそれを必要としたケースを 1 つも思い出すことができません。利用可能な最悪のオプションの 1 つであるように常に思われます。以前の会社では、VBA を使用しないことが暗黙のルールであり、VBA ライフ (およびエンド ユーザーのライフ) が向上するだけでした。
私がこの質問を作成した理由は、VBA の初心者に、これらのステートメントを使用するときに取るリスクを認識させることは価値があると考えているためです (エンド ユーザーが予期しないことをした場合のリスクが経験的に証明されています。 VBA への愛情) と直接的な代替案を提案すること (以前は常にそうしていたとは言いませんが、すでにバグ モンスターに迅速な解決策を提供するだけでは何か問題があると感じています)。
黙って許可すると (この場合は自動的に強化されます)、VBA 開発者を始めると、間違った方法でツールを作成することが増えると思います (したがって、新規参入者もその動作を継承します。これは、Google が戻ってきてからスタック オーバーフローからも学ぶことになります)。彼らが探している結果 (!))。
開発者が「選択」を使用できる理由と、それが潜在的なバグである状況を認識していない場合は、絶対に使用しないでください。個人的には、イミディエイト ウィンドウで select stmt を使用して、ダイナミック レンジの定義 (バグ モード) を簡単にチェックできますが、記述されたコードでは使用できません。
その結果、最終的に VBA は以前よりもさらに人気がなくなります。問題が発生した場合、その言語は被害者になります (それでも、Excel および Access アプリケーションで利用可能な「最高の」プログラミング サポートであることには変わりありません)。VBA が常に「たわごと」である大企業で、これが何度も発生するのを見てきました。
これは私自身の正直な経験にすぎません。
それは正しいか間違っているかの問題ではありません。質問に対するあなたの見解を聞きたいです。