要望:自動起動マクロで「破棄して終了」No.09294
h-tom さん 17/01/25 22:30
 

h-tom です。

要望です。
自動起動マクロの「ファイルを閉じる直前」ですが、geteventparam で、
「破棄して終了」の実行でファイルを閉じるのか、判断可能にならないで
しょうか?

「ファイルを閉じる直前」でカラーマーカーなど各種情報を保存するマクロ
を実行していますが、「破棄して終了」時も実行してしまうので、保存した
情報とファイルが一致しない状況になってしまいます。

Shiftが押されていたら、マクロを実行しないようにしていますが、忘れる
時もあったりするので、マクロ内で判定可能なら助かります。

[ ]
RE:09294 要望:自動起動マクロで「破棄しNo.09296
秀丸担当 さん 17/01/26 10:24
 

確かに「ファイルを閉じる直前」の自動起動マクロで、破棄したかどうかがわか
ると有用だと思います。
一般的に、編集したものを破棄して終わる場合、「破棄して終了」を使うことよ
り、普通に閉じて「保存しますか?」の問い合わせで「いいえ」を選ぶことのほ
うが多い気がします。
ただ現状では問い合わせが出る前にマクロが実行されるので、問い合わせを出し
つつ保存せずに終了したかどうかを知ることができる方法もあったらいいと思い
ますが、どうでしょうか。

[ ]
RE:09296 要望:自動起動マクロで「破棄しNo.09299
h-tom さん 17/01/26 23:34
 

h-tom です。

>確かに「ファイルを閉じる直前」の自動起動マクロで、破棄したかどうかがわか
>ると有用だと思います。
>一般的に、編集したものを破棄して終わる場合、「破棄して終了」を使うことよ
>り、普通に閉じて「保存しますか?」の問い合わせで「いいえ」を選ぶことのほ
>うが多い気がします。
>
>ただ現状では問い合わせが出る前にマクロが実行されるので、問い合わせを出し
>つつ保存せずに終了したかどうかを知ることができる方法もあったらいいと思い
>ますが、どうでしょうか。
そうか、保存確認ダイアログの時点でも、「いいえ」を選べば、編集を破棄する
事は可能ですね。

「破棄して終了」は「ファイルを閉じる直前」を実行するので、確認可能になれば
なんとかできますが、保存確認ダイアログで「いいえ」を選択されると、現状では
それを確認する方法がありませんね。

ということで、なんか難しそうですが、保存実行の状態確認が可能なら助かります。

[ ]
RE:09299 要望:自動起動マクロで「破棄しNo.09302
秀丸担当 さん 17/01/27 15:26
 

保存せずに終了したときもできたほうがよさそうということで、何らかの方法を
検討したいと思います。
マクロが呼び出されるタイミングの変更はできないので、seteventnotifyで問い
合わせを出してからもう一度自動起動マクロが呼ばれるように指示可能にすると
かを考えましたが面倒そうです。

ちなみに現状では以下のようなマクロで似たような問い合わせを自前で作成でき
る方法も考えられます。これだったら破棄して終了かどうかだけを知る方法でも
いいかもしれないです。


if(event==7){
  if(updated){
    question basename+" は更新されています。保存しますか?";
    if(result==false){
      seteventnotify 1; //閉じる処理を中断
      quit;
    } else {
      save;
      seteventnotify 2; //保存するかどうかの問い合わせは出さずに続行
    }
  }
}

問い合わせが「はい」「いいえ」しかないので、いまさらながら「はい」「いい
え」「キャンセル」というメッセージボックスなど、一般的なメッセージボック
ス各種を出せる関数を作るのでもいいかもしれないです。

[ ]
RE:09302 要望:自動起動マクロで「破棄しNo.09305
h-tom さん 17/01/27 22:32
 

h-tom です。

>保存せずに終了したときもできたほうがよさそうということで、何らかの方法を
>検討したいと思います。
>マクロが呼び出されるタイミングの変更はできないので、seteventnotifyで問い
>合わせを出してからもう一度自動起動マクロが呼ばれるように指示可能にすると
>かを考えましたが面倒そうです。
はやり、かなり面倒ですよね。
根本的な解決(?)は、自動起動マクロを見直す時があれば、その機会にお願いします。

ということで、「破棄して終了」を判断する手段の追加をお願いします。
後は、提案していただいたように、「ファイルを閉じる直前」の中で、自前でなん
とかする方向で考えます。

>問い合わせが「はい」「いいえ」しかないので、いまさらながら「はい」「いい
>え」「キャンセル」というメッセージボックスなど、一般的なメッセージボック
>ス各種を出せる関数を作るのでもいいかもしれないです。
そうか、ファイル保存メッセージの代替えだと「キャンセル」ボタンが必要ですね。
自前のWindows スクリプト コンポーネント で使ったCOMコンポーネントで、適当に
wshのメッセージボックス出す機能でも追加しますか。

[ ]
RE:09305 要望:自動起動マクロで「破棄しNo.09306
秀丸担当 さん 17/01/30 13:37
 

そうですね。
呼び出され方を変えるのはややしくなるので、破棄して終了を得る方法と、メッ
セージボックスの方法を今後のバージョンで検討したいと思います。

[ ]