◀マクロトップへ
  • 366 サクラエディタのマクロでこういうことしたいのですが教えてください。
    • 367 RE: サクラエディタのマクロでこういうことしたいのですが教えてください。
      • 368 Re2: サクラエディタのマクロでこういうことしたいのですが教えてください。
        • 369 Re3: サクラエディタのマクロでこういうことしたいのですが教えてください。
        • 370 Re3: サクラエディタのマクロでこういうことしたいのですが教えてください。
          • 371 Re4: サクラエディタのマクロでこういうことしたいのですが教えてください。
            • 372 Re5: サクラエディタのマクロでこういうことしたいのですが教えてください。
              • 373 Re6: サクラエディタのマクロでこういうことしたいのですが教えてください。
  • [366] サクラエディタのマクロでこういうことしたいのですが教えてください。 マクロ初心者 2007年04月02日 15:07

    メールの返信のときに引用したい文章の各行の頭に”> ”を追加しようとしています。メーラーにその機能がないので、一旦サクラエディタを起動し、引用したい文章を貼り付け、以下のPPAマクロを実行して、できあがった文字列をコピーしてメーラーで貼り付け使用してます。

    //PPAマクロ
    begin
    S_ReplaceAll('^.', '> $&', 148); // 選択範囲の行頭を > に置換する。
    S_CancelMode(0); // 各種モードの取り消し 選択状態を解除する。[Esc]キーと一緒。
    S_SearchClearMark(0); // 検索マークの切替え
    S_MoveHistPrev(0); // 移動履歴: 前へ
    S_ReDraw(0); // 再描画
    end;

    やりたいのは、引用したい文章をコピーして、右クリックして”サクラエディタで開く”を実行します。サクラエディタではエディタオープン時の自動実行マクロか何かでクリップボード内の文字列に上記マクロを実行して、マクロの中でクリップボードにコピーしてすぐに終了してしまうというものです。そうしますと”> ”が追加された文字列をメーラーですぐに貼り付けることができるのではないかと思いました。
    いまいちサクラエディタとPPAマクロに詳しくないので可能かどうかさえ分かりません。
    こういうことしたいのですがどうすればできるのか教えてください。よろしくお願いします。
    もし、別のサイトでこういう問い合わせを受けているというのがありましたらそれでもですのでよろしくお願いします。また、申し訳ありませんが質問されても夜にしか返信できませんのでご了承ください。
    • [367] RE: サクラエディタのマクロでこういうことしたいのですが教えてください。 すい 2007年04月03日 03:19

      > メーラーにその機能がないので、一旦サクラエディタを起動し、引用したい文章を貼り付け、以下のPPAマクロを実行して、できあがった文字列をコピーしてメーラーで貼り付け使用してます。

      その程度なら PPA でなくキーボードマクロで十分だと思う。
      というか、変数も何も無いし、わざわざ PPA 使う意味無いんじゃ。

      どうせなら、マクロの先頭で貼り付けして、
      最後で全文を範囲選択してコピーするあたりまでやっちゃえば?

      1.メーラーとやらで処理対象のテキストを範囲選択してコピー
      2.新規サクラエディタのウィンドウを開く。
      3.下記マクロを実行する。(勝手にテキスト処理されて最後にエディタウィンドウが閉じる)
      4.メーラーとやらで貼り付け実行

      ----- なんとか.mac -----
      //キーボードマクロのファイル
      S_Paste(0); // 貼り付け

      S_ReplaceAll('^', '> ', 148); // 選択範囲の行頭を > に置換する。何も選択されていない場合、全テキストが処理される。

      S_SelectAll(0); // すべて選択
      S_Copy(0); // コピー

      S_Undo(0); // 元に戻す
      S_Undo(0); // 元に戻す
      S_WinClose(); // ウィンドウを閉じる
      --------------------

      > サクラエディタではエディタオープン時の自動実行マクロか何かで
      これは無理だから。自動実行の類は無いから。

      でも、一番楽なのはサクラエディタじゃなくて perl か何かを使用する事だと思う。

      Active Perl でもインストールしておいて、下記(実質内容4行)の
      スクリプトを用意しておけば、後はそのファイルをクリックして
      実行するだけです。

      1.メーラーとやらで処理対象のテキストを範囲選択してコピー
      2.下記、スクリプトファイルをマウスで突くだけ。
       # あるいはコマンド「perl C:\~~\test.pl」を実行する。
      3.メーラーとやらで貼り付け実行

      ----- test.pl -----
      #!perl

      use Win32::Clipboard; # Win32::Clipboard を使うわよ、の宣言
      $data = Win32::Clipboard::Get(); # $data にクリップボードの内容を格納
      $data =~ s/^/> /mgo; # $data の各行の行頭に "> " を付ける
      Win32::Clipboard::Set($data); # $data の内容ををクリップボードにセット
      --------------------
      • [368] Re2: サクラエディタのマクロでこういうことしたいのですが教えてください。 マクロ初心者 2007年04月03日 05:35

        > でも、一番楽なのはサクラエディタじゃなくて perl か何かを使用する事だと思う。
        > Active Perl でもインストールしておいて、下記(実質内容4行)の
        > スクリプトを用意しておけば、後はそのファイルをクリックして
        > 実行するだけです。

        さっそくの回答ありがとうござました。
        Active Perlをインストールして殆どやりたいことができました。
        もしかしてWSHでも同じことができるのかな・・・?
        とにかくありがとうござました。感謝です。
        • [369] Re3: サクラエディタのマクロでこういうことしたいのですが教えてください。 di 2007年04月03日 09:47

          > もしかしてWSHでも同じことができるのかな・・・?

          WSHでもやれないことは無いですが、直接クリップボードを触れないので
          下みたいな回りくどい感じになりますね。

          var oIExp = WScript.CreateObject("InternetExplorer.Application");
          oIExp.Navigate("about:blank");
          while(oIExp.Busy){ WScript.Sleep(10); }
          var oClip = oIExp.Document.parentWindow.clipboardData;
          var sText = oClip.getData("TEXT");
          sText = sText.replace(/([^\r\n]+\r?\n?)/g,"> $1");
          oClip.setData("TEXT", sText);
          oIExp.Quit();
        • [370] Re3: サクラエディタのマクロでこういうことしたいのですが教えてください。 AC 2007年04月03日 18:20

          ▼ マクロ初心者さん

          > Active Perlをインストールして殆どやりたいことができました。
          > もしかしてWSHでも同じことができるのかな・・・?

          Active Perl て WSH だろとかいうつあfひえsdkj
          • [371] Re4: サクラエディタのマクロでこういうことしたいのですが教えてください。 まくろ初心者 2007年04月04日 00:27

            ▼ ACさん
            > ▼ マクロ初心者さん
            >
            > > Active Perlをインストールして殆どやりたいことができました。
            > > もしかしてWSHでも同じことができるのかな・・・?
            >
            > Active Perl て WSH だろとかいうつあfひえsdkj

            私、スレ主とは別人です 笑

            ってか、">"をつけるだけなら、サクラエディタにありますが?
            右クリックで引用符つきコピーをすればよいのでは???

            • [372] Re5: サクラエディタのマクロでこういうことしたいのですが教えてください。 マクロ初心者 2007年04月04日 15:31

              まくろ初心者さんへ

              > ってか、">"をつけるだけなら、サクラエディタにありますが?
              > 右クリックで引用符つきコピーをすればよいのでは???

               げっ、あったぁ~。
               何してたんだろう・・・。
               でも、ActivePerl方式が使い勝手がいいのでこちらにさせて
               もらいます。

                ※このBBSには初めて質問したのですが、本当にマクロ
                 初心者だったので同じ名前になってしまいました。
                 おそらくもう質問することはないかと思いますので。
                 失礼しました。
              • [373] Re6: サクラエディタのマクロでこういうことしたいのですが教えてください。 すい 2007年04月05日 04:26

                > でも、ActivePerl方式が使い勝手がいいのでこちらにさせて
                > もらいます。

                あぅ、ごめんなさい、Active Perl、ちっとも使い勝手良くないです。
                というか「他のツール使って良し」なら、「クリップボード拡張ツール」
                の類を使用すればもっとずっと使い勝手が良くなりますね。
                # ド忘れしてました。

                例えば CLCL (クルクル) なんか。
                http://www.nakka.com/soft/clcl/

                クリップボードの履歴を取るツールですが、プラグインで
                色々なテキスト編集機能を付加する事が出来ます。
                用意されている tool_text を登録すれば、ツールとして
                「引用(&Q)」が使えるようになります。

                デフォルトの設定だと [Alt]+[T] で、登録したツールを利用する事が
                出来ます。(キーは「オプション」→[動作]タブ にて自由に変えられます。)


                1.メーラーとやらで処理対象のテキストを範囲選択する。(選択だけ)

                2.CLCLのツールメニューを出して [引用(&Q)] を実行する。
                 具体的には [Alt]+[T] → [Q] とキー入力するだけ。
                 すると、引用記号を聞いて来るので「> 」と入力して [Enter]。

                3.メーラーの編集画面で選択範囲の文字列が引用記号付きの
                 状態に変わり果てたさまを呆然と眺める。

                のような感じで、そのメーラーとやらの編集画面から一度も
                外へ出る事なく、引用記号付けられますな。

                類似のソフトは他にもあるんじゃないかなぁと。
                探してみそ。