←前へ 次へ→
機能別Ｑ＆Ａ 質問番号順Ｑ＆Ａ 目次

# [HMM0032A]

## ●「検索での表示」の設定による動作の違い

  ある文字列を検索させて消去したいのですがうまくいきません。

  たとえば、

      秀丸エディタ

  という内容で、"秀丸"を検索し削除する為に、

      gofiletop;
      searchdown2 "秀丸";
      if(result){
          message "削除します";
          delete;
      }
      endmacro;

  というマクロを作った場合、削除されるのが"秀丸"ではなく、 "秀"という一文字しか削除できないという状況の対処方法です。

  「その他」→「動作環境」→「検索」→「検索の動作-検索での表示」が［点滅］になっていると、検索にマッチした箇所を削除できません。［範囲選択］にする必要があります。

  「検索での表示」が［点滅］になっている場合、選択されているように見えるますが、実際は選択されていません。その為、「delete;」等の命令を実行しても、カーソル位置にある文字を消すだけの動作になります。 (範囲選択していれば、選択範囲が削除されますが、範囲選択されていないので、対象がカーソル位置のみになっている)

  「setcompatiblemode文」を使えば、マクロ実行時に「検索での表示」の設定を、一時的に変更できます。

      setcompatiblemode 0x00000200；

  setcompatiblemode文の設定抜粋

  0x00000000 | マクロの標準動作（動作環境に従う）
  0x00000100 | 点滅表示
  0x00000200 | 範囲選択

  以下のようにマクロを変更すれば、「検索での表示」の設定を変更しなくても、"秀丸"という検索にマッチした文字を削除できます。

      setcompatiblemode 0x00000200；
      gofiletop;
      searchdown2 "秀丸";
      if(result){
          message "削除します";
          delete;
      }
      endmacro;

←前へ 次へ→
機能別Ｑ＆Ａ 質問番号順Ｑ＆Ａ 目次