マクロのSelection.Replace()について

  1. 開発お疲れ様です。

    マクロのSelection.Replace()ですが、実行後に検索・置換ダイアログの情報が置き換わります(grepでは、フォルダに | が指定されていても)。

    一連の流れの中にある固定の置換の場合、編集作業に復帰した後、ダイアログの文字列は置き換わらない方が良いことが多いと思うのです。
    というわけで、Replace()に渡した情報はマクロ内だけの使い捨てにできないでしょうか。例えばmeKeepManualSettingsやmeRestoreSettings(適当です)のようなフラグを追加していただけると…。

     |  mio  |  返信
  2. ご意見ありがとうございます。

    そうなんですよね。selection.Replace() に限らず、Find や FindInFiles、ReplaceInFiles メソッドも同様、検索ダイアログの項目が変更されてしまいます。

    これについては、検索ダイアログの項目を保持する仕様にして欲しいというご要望、またはそういった方法はないのか?という問い合わせが多いです。

    既存のマクロで、検索ダイアログの項目を変更するための目的で Find メソッドを使用しているというマクロがあれば影響がありますが、できればフラグなどではなく標準仕様で検索ダイアログの項目を保持する仕様にしたいところです。(某エディタもそうなってました)

    この件はマクロを活用されている方からの問い合わせが多いようなので、標準仕様にした場合でもご理解いただける気はしますね ^^;

     |  Kuro  |  返信
  3. その後、調査していて気の迷いが生じました。

    某エディタは標準で検索ダイアログの項目を保持する仕様でしたが、Microsoft 系のマクロ (Excel など) ではマクロの Find メソッドと検索ダイアログの項目が連動しているのが標準仕様なようです。(秀〇さんも同様)

    となると、やはり標準仕様は変更せず mio さんがおっしゃるように meKeepManualSettings のようなフラグを指定してやることで検索ダイアログの項目を保持するようにしたほうが正しい気がしてきました。

    うーん、もうちょっと悩んでみます…。

     |  Kuro  |  返信
スポンサーリンク