#31505
Applek
参加者

メールの件です。
そうでしたか。

いずれにしても
document.selection.Collapse();//選択範囲のブルー反転を解除させる。
document.selection.SetActivePoint(eePosLogical, 1, 1); ←これをコメントアウトすれば結果は変わります。

この二つの動作を兼用させれば今のコードでも完璧に動作しておりますし何の不具合も一度もありません。
説明されているdocument.selection.SetActivePoint(eePosLogical, 1, 1); このコードをどこかにつけないといけないということ自体が一般人には難しすぎます。

それと選択の範囲がなかった場合の動作ですが、これは文書によっては範囲がひとつも発生しない場合と多い場合の両方があります。
何の箇所がどれだけあるかというのは文書次第で念のためにいろいろ書いておくものです。

処理する文書は毎回違うわけでどちらの場合であっても対応できるように作っています。

範囲となる箇所がゼロである文書も当然存在するわけですが両方兼用して同じように動かせるという意味ではマクロが止まってもらっては困ります。
説明されているような、対象箇所がゼロの場合の書き方というのは私は教えてもらいましたから可能ですが他の人が気がつくとは思いません。
現在の止まらないままで上記のコードを兼用した動作に変えてもらったほうがいいと思います。
初心者が一番簡単な方法が最善だと思います。
一般の人間が複雑な書き方をわかるはずがなく、そうしないと余計にこの問題で難易度が上がって一般人には難しい仕様になるためです。
document.selection.Collapse();これじたいに画面をクリックして解消するという機能にすれば簡単になるのに、なぜ逆に難しく変更されるのでしょうか?
それと制御文字などを消すだけ結果が変わることは謎です。

よろしくお願いいたします。