マクロが新たなファイルを開く前に次の動No.08715
でがらし さん 18/07/06 22:53
 
 ファイルを編集中に、別のファイルを開いて、そのファイルに日付を挿入するマク
ロを作っています。ところが、日付が新たに開いたファイルでなく、編集中のマクロ
に挿入されることがあります。

 以前、別のマクロについて、同様の現象の質問をしたとき、h-tom さんから、新た
なファイルが開いたか、確認すべきだというご示唆を受けました。それをマクロに取
り込んでいますが、効果がありません。ひょっとすると、無意味なことをしていて、
その部分が効いていないのかもしれません。

 下記にコードを添付します。改善する余地があるなら、お教えください。

 関連する情報を記載します。

 この症状は、いつも起こるわけではありません。うまく行くことがあります。割合
でいうと、半分くらいでしょうか。

 以前の質問は下記です。

「既存ファイルを開いて空にするマクロ No.07623
でがらし さん 15/06/20 07:24」

 秀丸で、新たなファイルを開くのに、数秒以上、かかることがあります。ただ、
「マクロ内から秀丸エディタを起動したはずですが、10秒待っても応答がありませ
ん」というメッセージは、出たことがありません。

 複数のマシンを使っています。Windowsの版は7、8、10ですが、現在、このト
ラブルをよく経験するのは Windows10 です。秀丸は8.81です。この症状は、数
年以上に渡って起きているので、Windowsの版と秀丸の版には無関係です。

 マクロです。

---------------------------------------

$m = "d:\\M\\MEMO.000";

$item[0] = "\n_" + year + "/" + month + "/" + day + "(" + dayofweek + ")"
 + time + "_" + "\n";

$item[1] = "\n・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・‥・・・・";

Label:

   openfile $m;

   if (result == 0 )

{
goto Label;
}

   else if (result == 1 )

{

   gofileend;

insert $item[0];

    insertreturn;

    insertreturn;

insert $item[1];

    insertreturn;

    up 4;

}

    endmacro;
---------------------------------------

[ ]
RE:08715 マクロが新たなファイルを開く前No.08716
h-tom さん 18/07/07 20:08
 
h-tom です。

> 下記にコードを添付します。改善する余地があるなら、お教えください。
「確認してから張り付ける」しかないのでは?
そうすれば、違うファイルに挿入することは避けられますよ。


openfile文のresultだけでは無理なら、以下の方法も組み合わせてはどうでしょ
うか?

マクロ起動直後と、文字列挿入前に変数に入れて、比較すればいいでしょう。
違っていれば、なにかしらウィンドウが切り替わっているはず。

・filename キーワード。開くファイル名が固定なら、目的のファイルか確認も
できます。
・hideemaruhandle(0)

[ ]
RE:08716 マクロが新たなファイルを開く前No.08717
でがらし さん 18/07/07 22:37
 
 レス、ありがとうございます。
 「確認してから張り付ける」というのは、目視確認するということでしょうか? 
別のファイルを開いてから、日付を入れるのが手間なので、両方を一緒にしたいと思
っていました。日付とは限らず、別のファイルを開いて何かを挿入するというのは、
いくらでもありそうな話なので、みなさん、この手のトラブルがないのか、不思議で
した。
 開くファイルは固定です。openfileの確認に加えて、ファイルネームによる確認と
ハンドルによる確認を加えてみます。

[ ]