「複数ファイルにマクロ実行 Ver.1.06」でNo.00415
レモン さん 17/01/11 17:42
 
Iranoanさんの「複数ファイルにマクロ実行 Ver.1.06」を愛用しております。
とても便利でたいへん重宝しておりますが、秀丸エディタのマクロライブラリ
で公開されているhiro@1987さんの「秀丸でFTPするマクロ ver.0.1」を
指定して実行するとアクティブなファイルは正しくアップロードされるのです
が、ほかのファイルはなぜかアップロードされません。FTPマクロを複数の
ファイルに対して同時に適用させる方法があれば教えて頂きたく存じます。

「秀丸でFTPするマクロ ver.0.1」はアクティブなファイルをサーバーに
ftp.exeを使ってアップロードするマクロです。単独で実行するとコマンドプ
ロンプトの画面が一瞬表示され、送信が完了すると画面は自動的に消
えます。

このマクロを複数のファイルに対して同時に実行させたいのですが、たとえ
ば三つのファイルを三つのタブで開いた状態で「複数ファイルにマクロ実
行 Ver.1.06」のbatchmac0.macを起動し、ftp.macを指定して実行さ
せると、アクティブなファイルだけが送信され、残りの二つのファイルは送信
されません。batchmac1.macも試してみましたが、「実行マクロ」と「フォ
ルダ」「ファイル」を指定して実行してもやはりアクティブなファイルしか送信
できません。

どなたか教えを拝借できれば幸いです。

[ ]
RE:00415 「複数ファイルにマクロ実行 VerNo.00416
Iranoan さん 17/01/11 20:45
 
レモンさん今日は、Iranoan です
> Iranoanさんの「複数ファイルにマクロ実行 Ver.1.06」を愛用しております。
> とても便利でたいへん重宝しておりますが、秀丸エディタのマクロライブラリ
> で公開されているhiro@1987さんの「秀丸でFTPするマクロ ver.0.1」を
> 指定して実行するとアクティブなファイルは正しくアップロードされるのです
> が、ほかのファイルはなぜかアップロードされません。FTPマクロを複数の
> ファイルに対して同時に適用させる方法があれば教えて頂きたく存じます。
今日は、私は「秀丸でFTPするマクロ ver.0.1」を使ったことがないので、確かなことは
言えませんが、このマクロはマクロの終了に、exit 文を使っているので、どのマクロか
ら呼び出しても、このマクロを実行後に、マクロが終了するだけでなく、秀丸自体が終
了するかと思います。

なぜ exit を使っているのか? が不明なので、動作保証はいたしかねますが、exit→
endmacro
にすればこのマクロ実行後も、私のマクロは動き続けるかと思います。

[ ]
RE:00416 「複数ファイルにマクロ実行 VerNo.00417
レモン さん 17/01/12 14:39
 
Iranoanさん、早々とお返事をくださりありがとうございます。

アドバイスに従いexitをendmacroに書き換えてみましたが、ftp.scrという
名前のファイルが無限増殖してマクロが暴走し、止まらなくなってしまいま
した。

「秀丸でFTPするマクロ ver.0.1」のスクリプトを点検してみしたところ、
サーバーにアップロードする直前にftp.scrという名前のファイルを一時的
に作成してアップロードする仕組みのようで、アップロードが終わったあとも
ftp.scrという名前のタブが残り、このタブに対してFTPマクロが再び働き
かけ、新たに別のftp.scrタブが開いてアップロードが始まり、このタブに対
してまたFTPマクロが作動する……という無限循環に陥ってしまうようで
す。

アップロードが完了した時点でftp.scrというタブを消せばよいのではない
かと思い、quitを使ってみましたが、タブは消えてくれるのですが、アップ
ロードされるのはアクティブなタブだけで、残りのタブはアップロードされませ
んでした。quitの代わりにclosenewを使ってみましたが「無題」というタイ
トルのタブと増殖して、やはりマクロが暴走してしまいます。

解決方法をご存じでしたら教えて頂けると幸いです。
もし解決方法がなければ諦めますので、「無理ですよ」とおっしゃってくだ
さい。
お手隙の折にお返事をくだされば幸いに存じます。

[ ]
RE:00417 「複数ファイルにマクロ実行 VerNo.00418
K'zawa さん 17/01/12 17:27
 
レモンさん、こんにちは。
K'zawa/ユーザーです。
横から失礼します。

ftp.mac の末尾を、下記のように変更してみてはどうでしょうか?

変更前

    if (!result){message "FTPに失敗しました\n設定を確認してください。";}
    else{message "編集中のファイルをアップロードしました。";
    exit;}
}else{endmacro;}
exit;

変更後

    if (!result){message "FTPに失敗しました\n設定を確認してください。";}
    else{message "編集中のファイルをアップロードしました。";}
}
else{endmacroall;}

setactivehidemaru 1;
closehidemaruforced 1;


不要ならば「else{endmacroall;}」も削除していいです。

[ ]
RE:00418 「複数ファイルにマクロ実行 VerNo.00419
レモン さん 17/01/12 17:42
 
K'zawaさん、有益な回答をありがとうございます。
おかげさまでばっちりうまく行きました!
setactivehidemaruとclosehidemaruforcedを併用すればよいのです
ね。両方とも今まで使ったことがなく、知識がありませんでした。マクロの
ヘルプを読んでじっくり勉強いたします。
取り急ぎお礼申し上げます。

[ ]