[ 新規に投稿する ]

マクロが新たなファイルを開く前に次の動作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の確認に加えて、ファイルネームによる確認とハンドルによる確認を加えてみます。
[ ]

[ 新規に投稿する ]