置換後に別プログラムに貼り付けるマクロNo.28140
みみずく さん 10/04/28 16:40
 
非常に簡単なことだと思うのですが,マクロヘルプやマクロのマニュアル本を自分な
りに調べても分からないので,教えて下さい。

「¥や,が入った金額データがたくさんあるときに,数字だけに置換して(つまり¥
や,を消して)CSVを扱えるエディタに貼り付ける」操作をしたいと思い,自分なり
にマクロを作ってみました。
-----------------------------------------
replaceallfast ",", "";
replaceallfast ",", "";
replaceallfast "円", "";
replaceallfast "\\", "";
selectall;
copy;
run "C:\XXX\XXX\XXX.exe";
paste;
-----------------------------------------
runの行には,他のエディタソフトをフルパスで入れています。

分からないのは,
1.run行が有効でないようで,プログラムが立ち上がりません。
2.ペーストで別のソフトに貼り付けたいのですが,秀丸自身に貼り付けられてしま
います。

すみませんが,何が悪いのか,教えていただけますでしょうか。
よろしくお願い致します。

[ ]
RE:28140 置換後に別プログラムに貼り付けNo.28143
秀丸担当 さん 10/04/28 17:10
 

>分からないのは,
>1.run行が有効でないようで,プログラムが立ち上がりません。

マクロ内の文字列に含まれる「\」は、「\\」と記述する必要があります。

  run "C:\\XXX\\XXX\\XXX.exe";

とするといいのではないかと思います。

>2.ペーストで別のソフトに貼り付けたいのですが,秀丸自身に貼り付けられてしま
>います。

他のソフトがどういう機能を備えているかによると思います。
例えば秀丸エディタが他のソフトから起動されて同時に貼り付けするとしたら、
「hidemaru.exe /xtest.mac」として起動と同時にマクロ実行するようにして、
test.macの内容は「paste;」の一行だけにするといったことが考えられます。

他のソフトがそういった感じでマクロ実行できるとしたらそういう方法もできる
かもしれないです。
あるいは、DDEという機能や、COMという機能を備えているとしたら、それらの機
能を使って秀丸エディタからで操作できるかもしれないです。

ほとんどのソフトで使えそうなこととしては、いったん秀丸エディタ上で一時フ
ァイルに保存して、そのファイルをコマンドラインに指定して開くと、できると
思います。

  saveas "C:\\test\\test.txt";
  run "C:\\XXX\\XXX\\XXX.exe C:\\test\\test.txt";


あと、強引な方法としては、vbsを作ってCtrl+Vのキー操作を送りつけるという
方法もあると思いますが、安定性は低いかもしれません。

  (秀丸マクロの内容)
  run "wscript.exe C:\\test\\test.vbs";

  (test.vbsの内容)
  Set objShell = WScript.CreateObject("WScript.Shell")
  objShell.Run "notepad.exe"
  WScript.Sleep 1000
  objShell.SendKeys "^V"

[ ]
RE:28143 置換後に別プログラムに貼り付けNo.28145
みみずく さん 10/04/28 17:17
 
早々に有り難うございました。

>マクロ内の文字列に含まれる「\」は「\\」と記述する必要があります。
>
>  run "C:\\XXX\\XXX\\XXX.exe";

パスでも\\とする必要があるとは気付きませんでした。
無事に立ち上がるようになりました。

ペーストの方は,使うソフトの仕様を見ながら,もう少し考えてみます。困ったらま
た相談させて下さい。
取り急ぎ,お礼まで。

[ ]