自動実行マクロ


 あるイベント(事象)が起こったときに自動的に実行されるマクロを自動実行マクロといいます。

プロシージャイベント
AutoKey文字キーが押されたとき
AutoVKeyキーが押されたとき
AutoZKeyIMEで文字が入力されたとき(確定時に呼ばれる)
AutoZKey2IMEで文字が入力されたとき(未確定文字入力時に呼ばれる)
AutoOpenファイルが開かれる直前
AutoOpenedファイルが開かれた直後
AutoCloseファイルが閉じられる直前
AutoClosedファイルが閉じられた直後
AutoExitQXが終了する直前
AutoInitQX起動直後
AutoClickedクリックしたとき
AutoDoubleClickedダブルクリックしたとき
AutoTimer約1秒おきに呼ばれる
AutoActivateドキュメントウィンドウが切り替わるごとに実行される
AutoStartマクロ実行前に自動的に実行される
AutoEndマクロ終了時に自動的に実行される
AutoMiddleClickファイルバーをホイールクリックしたとき(@@Command$(1) にクリックしたファイル名が格納されている)(v6.9)

 
一般マクロ実行中は自動実行マクロは実行されません。つまり、一般マクロ中でファイルを開く動作を行っても、AutoOpen は実行されません。


注意:自動実行マクロ内ではあまり複雑な動作は行わないようにしてください。


自動実行マクロには3つの種類があります。

1:キー定義ファイルにマクロファイル名を記述する方式。
  AutoClicked, AutoDoubleClicked, AutoStart, AutoEnd, AutoClose, AutoMiddleClick 以外はすべて使用できます。
  1つしか登録できない。
  マクロファイルを更新したら、QXを起動し直さなければならない。
  2にくらべて高速。

2:特定のファイル名でマクロファイルを作成する(ファイル追加方式)。
  AutoOpen, AutoOpened, AutoClose, AutoClosed, AutoClicked, AutoDoubleClicked, AutoMiddleClick のみ
  AutoOpen, AutoOpened, AutoClose, AutoClosed は10個までのマクロファイルを使用できる。
  マクロファイルを更新したら、すぐに反映される。
  一般に低速。

3:マクロ実行前、終了時に自動的に実行される AutoStart, AutoEnd
 test.mac,main
を実行しようとすると、まず、test.mac,AutoStart が実行されます。次に、test.mac,main が実行され、最後に、test.mac,AutoEnd が実行されます。AutoStart 内で、end を実行すると、実行しようとしたマクロは実行されません。
 3:は、名前は「自動実行マクロ」ですが、動作/制限事項などは一般マクロと同様です。

参照    自動実行マクロ内でのプロパティ/メソッドについて
        マクロ作成手順(自動実行マクロ)



AutoVKey, AutoKey の関係
1 キーボードでキーを押す(@@VKey, @@Shift が設定される)
2 AutoVKey が実行される
3 押されたキーが特殊キーでなければ
        @@Key が設定され、AutoKey が実行される
        @@Key が文書に入力または、コマンドが実行される
  押されたキーが特殊キーであれば
        @@VKey からコマンドが実行される



AutoTimer について
以下の場合は実行されません。
・ ダイアログなどを表示している
・ 最後のキー入力から1秒以上たっていない
・ キーマクロ実行中/定義中
・ マクロ実行中

例 1秒おきに beep が実行されます。
sub AutoTimer()
        beep
end sub


AutoClose マクロ中で、@@MacroReturnStatus = 1 を実行すると、閉じようとする動作をキャンセルできます。


ファイル名 qacls01.mac
proc AutoClose
        if msgbox("閉じるのをやめますか?", MB_YESNOCANCEL) = IDYES then
                @@MacroReturnStatus = 1
        end if
end proc



AutoMiddleClick マクロ中は @@Command$(1) にクリックしたファイル名が格納されています。

使用例 ホイールクリックでファイルを閉じます
proc AutoMiddleClick
        if @@ActiveFile(@@Command$(1)) <> 0 then
                @FileClose
        end if
end proc


最新情報  TOP  マクロTOP