◀マクロトップへ
  • 71 選択範囲を挟み込むマクロを書くには。
    • 72 Re:選択範囲を挟み込むマクロを書くには。
      • 73 Re2:選択範囲を挟み込むマクロを書くには。
        • 74 Re3:選択範囲を挟み込むマクロを書くには。
    • 75 Re:選択範囲を挟み込むマクロを書くには。
      • 76 ありがとうございます。
        • 77 追記
          • 78 Re:追記
  • [71] 選択範囲を挟み込むマクロを書くには。 ミック 2004年05月17日 07:45

    『選択範囲を挟み込むマクロ』は、どうやって書いたらよいのでしょうか。

    具体的には、たとえば、
    『これはテストです。』という文の『テスト』を選択した状態から、
    『これは【テスト】です。』といった具合にしたいのです。


    よろしくお願いします。m(_ _)m。

    • [72] Re:選択範囲を挟み込むマクロを書くには。 しみづ 2004年05月17日 11:22

      >『選択範囲を挟み込むマクロ』は、どうやって書いたらよいのでしょうか。

       手順としては、

      (1)選択部分を取得する
      (2)テキストを貼り付けで"【" + 選択部分 + "】"を貼り付ける

      を得意なマクロ形式で作ればよいのではないでしょうか。

       例えば発言#58の前半のマクロは、そのあと変更部分を選択して終わるWSHマクロ例です。
      • [73] Re2:選択範囲を挟み込むマクロを書くには。 ミック 2004年05月17日 13:35

        お返事ありがとうございます。

        >を得意なマクロ形式で作ればよいのではないでしょうか。

        すいません。分からないです。

        キーマクロで書くとすると、どうなるのでしょうか?

        • [74] Re3:選択範囲を挟み込むマクロを書くには。 しみづ 2004年05月17日 15:38

          >キーマクロで書くとすると、どうなるのでしょうか?

           発言#48の最後にヘルプのある場所が書いてあるので、それを見て勉強してください。私はキーマクロはあまり書いたことありません。
           試しにちょっと書いてみたら、S_GetSelectedStringが関数がないといわれました。キーマクロでは組めないかもしれません。

           そういう場合は、前述の発言#58のaddcomm.jsを一部変更して使えるでしょう。インターネット・エクスプローラーが組み込まれた環境なら、動く可能性があります。
           さあ、どこを変更するのでしょう。JavaScriptの仕様は、とほほさんのページから「とほほのJavaScriptリファレンス」を調べてください。
          http://tohoho.wakusei.ne.jp/www.htm
    • [75] Re:選択範囲を挟み込むマクロを書くには。 しみづ 2004年05月18日 04:07


       もう一つの方法を考え付きました。こちらはキーマクロで組めます。ただし、クリップボードの内容を壊します。

      (1)コピー(選択範囲をクリップボードにコピー)
      (2)テキストを貼り付け"【"
      (3)貼り付け(クリップボードから貼り付け)
      (4)テキストを貼り付け"】"
      • [76] ありがとうございます。 ミック 2004年05月18日 16:31

        できました!!

        正直なところ、この式の意味はまったく分からないのですが、とにかくできて、とても嬉しいです。ヽ(^。^)ノ

        これを機会に、何とか、もうちょっと、プログラミングみたいなことがわかればなぁ、と思います。

        ありがとうございました。m(_ _)m


        var inp = Editor.GetSelectedString(0);
        var len = inp.length+4;
        var crlf = 0;
        var rc;
        var i;

        for ( i = 0; ; i++ ) { // 改行カウント
        rc = inp.indexOf("\n", i);
        if ( rc == -1 )
        break;
        crlf++;
        i = rc;
        }
        len -= crlf; // 改行数を長さから引く
        inp = "【" + inp + "】";
        Editor.InsText(inp); // 変更
        for ( i = 0; i < len; i++ ) { // 変更部分を選択
        Editor.Left_Sel();
        }

        • [77] 追記 ミック 2004年05月19日 15:08

          var len = inp.length+4; →var len = inp.length+2;

          ですね。

          しばらく使って、気がつきました。(^^;;
          • [78] Re:追記 しみづ 2004年05月19日 17:15


            >しばらく使って、気がつきました。(^^;;

             はい、気づいていましたが、あえて黙ってました。そうやってだんだんわかってくるものです。
             バラしてしまうと、変更した部分を選択する必要がなければ、次の一行ですみます。

            Editor.InsText("【" + Editor.GetSelectedString(0) + "】");