サポート > PC-MAPPING ヒント集 > スクリプト > イベント駆動型スクリプティング
イベント駆動型スクリプティング
■ 概要
  • PC-MAPPINGウィンドウ上で発生するイベントに対してスクリプトを設定し、実行する事ができます。
    ベクターウィンドウで発生するイベント以外に、データベースウィンドウで発生するイベントに対して、スクリプトを設定、実行する事ができます。
  • Function文を使用できます。
    これにより、Automationを使用してAppクラス:GetParam()メソッドで引数を取得したり、Appクラス:Gpf()メソッドで戻り値を指定する必要はありません。

■ リファレンス-[ベクターウィンドウ]
[プロジェクト]リボン-[プロジェクト設定]-[プロジェクト]の[スクリプト]パネルに記述します。
Automationにイベント専用のメソッドがあり、ベクターウィンドウはAppクラス:GetEventPcmDoc()、Appクラス:GetEventProject()を使用できます。
これらは、プロジェクトエキスパートの[スクリプト]パネルに記載されているスクリプトの中で、自身のオブジェクトを取得する事ができます。

OnDocActivate(lngPara1)
[解説]
ベクタードキュメントウィンドウがアクティブまたは、非アクティブになったときに実行されます。
[引数]
lngPara1:ベクタードキュメントウィンドウの状態
0 = 非アクティブ
1 = アクティブ

OnViewActivate(lngPara1)
[解説]
ベクタードキュメントウィンドウがアクティブまたは、非アクティブになったときに実行されます。
OnDocActivateと異なり、同一ベクタードキュメントであっても、どれか1つのウィンドウに関してイベントが発生します。
[引数]
lngPara1:ベクタードキュメントウィンドウの状態
0 = 非アクティブ
1 = アクティブ

OnProjectClose
[解説]
プロジェクトを閉じたときに実行されます。

OnCurLayerChanged
[解説]
編集レイヤーが、ツールバーのコンボボックス等で変更されたときに実行されます。

OnProjectLoad
[解説]
プロジェクトを開いたときに実行されます。

OnProjectSave
[解説]
プロジェクトを保存した後に実行されます。

OnMouseMove(lngPara1, lngPara2, lngPara3, lngPara4)
[解説]
PC-MAPPINGベクターウィンドウ上をマウスが移動したときに実行されます。
[引数]
lngPara1:X座標(リアル座標、方向は数学的)
lngPara2:Y座標(リアル座標、方向は数学的)
lngPara3:Shiftキーの状態(それぞれの論理和を取れます)
1 = マウス左ボタン
2 = マウス右ボタン
4 = Shiftキー
8 = Ctrlキー
16 = マウス中ボタン
32 = Altキー
lngPara4:マウスの状態
0 = アイドリング
1 = 処理中
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。
[使用例]
[JScriptの場合]
//@JScript
function OnMouseMove(lngPara1, lngPara2, lngPara3, lngPara4)
{
alert("X座標=" + lngPara1);
alert("Y座標=" + lngPara2);
alert("Shiftキー=" + lngPara3);
alert("マウス処理=" + lngPara4);
return 0;
}
[VBScriptの場合]
'@VBScript
Function OnMouseMove(lngPara1, lngPara2, lngPara3, lngPara4)
msgbox "X座標=" & lngPara1
msgbox "Y座標=" & lngPara2
msgbox "Shiftキー=" & lngPara3
msgbox "マウス処理=" & lngPara4
OnMouseMove = 0
End Function
[注意]
VBScriptの場合、[プロジェクト]リボン-[プロジェクト設定]-[プロジェクト]の[スクリプト]パネルでは従来のSub文の使用も可能ですが、Function文をご利用下さい。
詳しくは、後述「■ 引数の取得と戻り値の設定」をご覧下さい。

OnLButtonDown
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの左ボタンが押されたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnLButtonUp
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの左ボタンが離されたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnLButtonDblClk
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの左ボタンがダブルクリックされたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnMButtonDown
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの中ボタンが押されたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnMButtonUp
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの中ボタンが離されたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnMButtonDblClk
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの中ボタンがダブルクリックされたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnRButtonDown
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの右ボタンが押されたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnRButtonUp
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの右ボタンが離されたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません(例えば、マウス右ボタンメニューを表示しません)。

OnRButtonDblClk
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの右ボタンがダブルクリックされたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnKeyDown(lngPara1, lngPra2, lngPara3, lngPara4)
[解説]
キーボードのキーが押されたときに実行されます。
[引数]
lngPara1:キーコード(キーコードに関しては、PC-MAPPINGオートメーションリファレンスの「仮想キーコード表」をご覧下さい)
lngPara2:この直前のキーの状態
0 = この直前にキーが押されていない
1 = この直前にキーが押されている
lngPara3:X座標(リアル座標、方向は数学的)
lngPara4:Y座標(リアル座標、方向は数学的)
[参考]
「lngPara2:この直前のキーの状態」の「1=この直前にキーが押されている」とは、キーを押し続けている状態を示し、オートリピートでOnKeyDownイベントが発生していると判定できます。
[例]
[A]キーを押した場合、lngPara1 =「65」を取得します。
10進数「65」は16進数「41」なので仮想キーコード表を確認すると[A]キーである事がわかります。
[注意]
キーを押し続けている間、イベントは発生し続けます。
[使用例]
キーボードのキーを押してOnKeyDownイベントが発生した場合、アウトプットバー「メッセージ」パネルにキーコード(10進数)を出力します。
[JScriptの場合]
//@JScript
function OnKeyDown(code, mode, x, y)
{
var mf = GetMainFrame();
var ob = mf.GetOutputbar();
var mw = ob.GetMessagewnd();
var temp = mw.AddText("OnKeyDown:" + code + "\r\n");
return 0;
}
キーボードの[S]キーを押し続けると「R05修正箇所」レイヤーを表示し、[S]キーを離すと「R05修正箇所」レイヤーを非表示します。
//@JScript
function OnKeyDown(code, mode, x, y)
{
if(code == 83 && mode == 0){
var prj = GetEventProject();
var lyr = prj.SearchLayer("R05修正箇所");
if(lyr != null){
lyr.Status = 1;
var doc = GetEventPcmDoc();
var temp = doc.Repaint();
}
}
return 0;
}
function OnKeyUp(code, mode, x, y)
{
if(code == 83){
var prj = GetEventProject();
var lyr = prj.SearchLayer("R05修正箇所");
if(lyr != null){
lyr.Status = 0;
var doc = GetEventPcmDoc();
var temp = doc.Repaint();
}
}
return 0;
}

OnKeyUp(lngPara1, lngPra2, lngPara3, lngPara4)
[解説]
キーボードのキーが離されたときに実行されます。
[引数]
lngPara1:キーコード(キーコードに関しては、PC-MAPPINGオートメーションリファレンスの「仮想キーコード表」をご覧下さい)
lngPara2:補助コード(予約のため無視して下さい)
lngPara3:X座標(リアル座標、方向は数学的)
lngPara4:Y座標(リアル座標、方向は数学的)
[使用例]
ベクターウィンドウ:OnKeyDownイベントの[使用例]をご覧ください。

OnChar(lngPara1, lngPra2, lngPara3, lngPara4)
[解説]
キーボードのキーが押されたときに実行されます。
OnKeyDownとは異なり、押されたキーの文字コードが取得できます。
ただし、全角の場合は上位バイトと下位バイトがそれぞれ取得できます。
[引数]
lngPara1:Unicode(10進数)
lngPara2:補助コード(予約のため無視して下さい)
lngPara3:X座標(リアル座標、方向は数学的)
lngPara4:Y座標(リアル座標、方向は数学的)
[例]
全角仮名文字「さ」を入力した場合[s][a]キーを入力しても実行されず、[Enter]キーを押すと実行されます。
lngpara1 =「12373」を取得します。10進数「12373」はUnicode表を確認するとひらがな「さ」である事がわかります。

OnZoomChanged
[解説]
表示縮尺が変更されたときに実行されます。
[注意]
ソース内に表示縮尺を変更するスクリプトを記述した場合、無限ループに陥るので注意して下さい。

OnStartPrintPreview
[解説]
印刷プレビュー(拡張モード(*)以外の場合)の開始時に発生します。
[注意]
(*)拡張モードとは、Pcm.iniの[SystemEnvMgr]にPreviewEx2=1と記述した場合を示します。
拡張モード以外とは、最新モード(PreviewEx2=2または記述なし)、旧タイプ(PreviewEx2=0)を示します。

OnEndPrintPreview
[解説]
印刷プレビュー(拡張モード(*)以外の場合)の終了時に発生します。
[引数]
lngPara1:印刷実行で終了フラグ
0 = 印刷プレビューが終了
1 = 印刷実行のため印刷プレビューが終了
[参考]
(*)拡張モードとは、Pcm.iniの[SystemEnvMgr]にPreviewEx2=1と記述した場合を示します。
拡張モード以外とは、最新モード(PreviewEx2=2または記述なし)、旧タイプ(PreviewEx2=0)を示します。

OnStartPrint
[解説]
印刷実行の開始時に発生します。
[引数]
lngPara1:印刷タイプ
1 = ウィンドウズプリンタ
2 = ビットマップ出力
3 = 外部フォーマット出力

OnEndPrint
[解説]
印刷実行の終了時に発生します。
[引数]
lngPara1:印刷タイプ
1 = ウィンドウズプリンタ
2 = ビットマップ出力
3 = 外部フォーマット出力
lngPara2:成功フラグ
0 = 失敗
1 = 正常終了

OnXButtonDown
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの第4、5ボタンが押されたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnXButtonUp
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの第4、5ボタンが離されたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnXButtonDblClk
[解説]
PC-MAPPINGベクターウィンドウ上でマウスの第4、5ボタンがダブルクリックされたときに実行されます。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnPcmDropFiles(lngPara1, lngPara2, lngPara3, lngPara4)
[解説]
PC-MAPPINGベクターウィンドウ上にファイルをドロップしたときに実行されます。
[引数]
lngPara1:ドロップされたファイルの数
lngPara2:Shiftキーの状態(それぞれの論理和を取れます)
1 = マウス左ボタン
2 = マウス右ボタン
4 = Shiftキー
8 = Ctrlキー
16 = マウス中ボタン
32 = Altキー
lngPara3:X座標(リアル座標、方向は数学的)
lngPara4:Y座標(リアル座標、方向は数学的)
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

OnMouseHover(lngPara1, lngPara2, lngPara3, lngPara4)
[解説]
PC-MAPPINGベクターウィンドウ上をマウスが移動していないときに実行されます。
[引数]
lngPara1:X座標(リアル座標、方向は数学的)
lngPara2:Y座標(リアル座標、方向は数学的)
lngPara3:Shiftキーの状態(それぞれの論理和を取れます)
1 = マウス左ボタン
2 = マウス右ボタン
4 = Shiftキー
8 = Ctrlキー
16 = マウス中ボタン
32 = Altキー
lngPara4:マウスの状態
0 = アイドリング
1 = 処理中
[戻り値]
0 = PCM側で通常の処理をします。
0以外 = PCM側で処理を行ないません。

コマンド名_OnLoad
[解説]
ここに記述したスクリプトをコマンドとして実行できます。
[使用例]
[プロジェクトエキスパート]-[スクリプト]パネルにスクリプトを記述し、ユーザー定義メニューやクイックバーに登録して実行します。
これにより、スクリプトファイルをプロジェクトの内部に持つ事ができます。
[JScriptの場合]
//@JScript
function SnapData()
{

}
[VBScriptの場合]
'@VBScript
Sub SnapData_OnLoad()

End Sub

■ リファレンス-[データベースウィンドウ]
[データベース]リボン-[設定]-[データベース定義]の[スクリプト]パネルに記述します。
データベース毎に設定する事ができます。
また、内部属性ウィンドウにも有効です。
Automationにイベント専用のメソッドがあり、データベースウィンドウはAppクラス:GetEventDbDoc()、Appクラス:GetEventDb()を使用できます。
これらは、データベース定義の[スクリプト]パネルに記載されているスクリプトの中で、自身のオブジェクトを取得する事ができます。

OnDocActivate(lngPara1)
[解説]
データベースウィンドウがアクティブまたは、非アクティブになったときに実行します。
[引数]
lngPara1:データベースウィンドウの状態
0 = 非アクティブ
1 = アクティブ

OnViewActivate(lngPara1)
[解説]
データベースウィンドウがアクティブまたは、非アクティブになったときに実行されます。
OnDocActivateと異なり、同一データベースキュメントであっても、どれか1つのウィンドウに関してイベントが発生します。
[引数]
lngPara1:データベースウィンドウの状態
0 = 非アクティブ
1 = アクティブ

OnDbClose()
[解説]
データベースが閉じられる直前に実行します。
データベースファイルが更新されている場合、保存の有無を確認するウィンドウ表示後に実行します。

OnDbLoad()
[解説]
データベースが読み込まれた後に実行します。

OnMouseMove(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ上をマウスが移動したときに実行します。
[引数]
lngPara1:カラム番号(左インデックス部分は-1)
lngPara2:ロウ番号(上ヘッダー部分は-1)
lngPara3:Shiftキーの状態(それぞれの論理和を取れます)
4 = Shiftキー
8 = Ctrlキー
32 = Altキー
[戻り値]
0 = PCM側で通常の処理をします(属性のコピー)。
1 = PCM側で処理を行ないません。
[使用例]
[JScriptの場合]
//@JScript
function OnMouseMove(lngPara1, lngPara2, lngPara3)
{
alert("カラム番号=" + lngPara1);
alert("ロウ番号=" + lngPara2);
alert("Shiftキー=" + lngPara3);
return 0;
}
[VBScriptの場合]
'@VBScript
Function OnMouseMove(lngPara1, lngPara2, lngPara3)
msgbox "カラム番号=" & lngPara1
msgbox "ロウ番号=" & lngPara2
msgbox "Shiftキー=" & lngPara3
OnMouseMove = 0
End Function

OnLDown(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ上でマウス左ボタンが押されたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnLUp(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ上でマウス左ボタンが離れたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnRDown(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ上でマウス右ボタンが押されたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnRUp(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ上でマウス右ボタンが離れたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします(マウス右メニューの表示)。
1 = PCM側で処理を行ないません。

OnDClk(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ上でセルをダブルクリックしたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします(編集モードへの移行)。
1 = PCM側で処理を行ないません。

OnTHLDown(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの上ヘッダー部分(Top Head)をマウス左ボタンが押されたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnTHLUp(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの上ヘッダー部分(Top Head)をマウス左ボタンが離れたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnTHRDown(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの上ヘッダー部分(Top Head)をマウス右ボタンが押されたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnTHRUp(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの上ヘッダー部分(Top Head)をマウス右ボタンが離れたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします(マウス右メニューの表示)。
1 = PCM側で処理を行ないません。

OnTHDClk(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの上ヘッダー部分(Top Head)をダブルクリックしたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします(フィールドの定義ダイアログボックスの表示)。
1 = PCM側で処理を行ないません。

OnSHLDown(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの左インデックス部分(Side Head)をマウス左ボタンが押されたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします(レコードの選択状態ON/OFF)。
1 = PCM側で処理を行ないません。

OnSHLUp(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの左インデックス部分(Side Head)をマウス左ボタンが離れたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnSHRDown(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの左インデックス部分(Side Head)をマウス右ボタンが押されたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnSHRUp(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの左インデックス部分(Side Head)をマウス右ボタンが離れたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします(マウス右メニューの表示)。
1 = PCM側で処理を行ないません。

OnSHDClk(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウの左インデックス部分(Side Head)をダブルクリックしたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnCBLDown(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ左上のヘッダーとインデックスの交差部(Center Button)をマウス左ボタンが押されたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnCBLUp(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ左上のヘッダーとインデックスの交差部(Center Button)をマウス左ボタンが離れたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnCBRDown(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ左上のヘッダーとインデックスの交差部(Center Button)をマウス右ボタンが押されたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnCBRUp(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ左上のヘッダーとインデックスの交差部(Center Button)をマウス右ボタンが離れたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnCBDClk(lngPara1, lngPara2, lngPara3)
[解説]
データベースウィンドウ左上のヘッダーとインデックスの交差部(Center Button)をダブルクリックしたときに実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします。
1 = PCM側で処理を行ないません。

OnKeyDown(lngPara1, lngPra2, lngPara3)
[解説]
データベースウィンドウ上でキーボードのキーが押されたときに実行します。
[引数]
lngPara1:キーコード(キーコードに関しては、PC-MAPPINGオートメーションリファレンスの「仮想キーコード表」をご覧下さい)
lngPara2:補助コード(予約のため無視して下さい)
lngPara3:Shiftキーの状態(それぞれの論理和を取れます)
4 = Shiftキー
8 = Ctrlキー
32 = Altキー
[例]
[A]キーを押した場合、lngPara1 =「65」を取得します。
10進数「65」は16進数「41」なので仮想キーコード表を確認すると[A]キーである事がわかります。
[注意]
イベントを発生できないキーがあります。例えば、[F3]キーを押すと、コマンド「CellFindNext」が実行されますので、イベントを発生できません。
セルにフォーカスが移動し、文字列を入力できる状態では、イベントを発生できません。

OnKeyUp(lngPara1, lngPra2, lngPara3)
[解説]
データベースウィンドウ上でキーボードのキーが離されたときに実行します。
[引数]
OnKeyDownと同様。
[注意]
セルにフォーカスが移動し、文字列を入力できる状態では、イベントを発生できません。

OnChar(lngPara1, lngPra2, lngPara3)
[解説]
データベースウィンドウ上でキーボードのキーが押されたときに実行します。
OnKeyDownとは異なり、押されたキーの文字コードが取得できます。
ただし、全角の場合は、上位バイトと下位バイトがそれぞれ取得できます。
[引数]
lngPara1:Unicode(10進数)
lngPara2:補助コード(予約のため無視して下さい)
lngPara3:Shiftキーの状態(それぞれの論理和を取れます)
4 = Shiftキー
8 = Ctrlキー
32 = Altキー
[例]
全角仮名文字「さ」を入力した場合[s][a]キーを入力しても実行されず、[Enter]キーを押すと実行されます。
lngpara1 =「12373」を取得します。10進数「12373」はUnicode表を確認するとひらがな「さ」である事がわかります。

OnEditOK(lngPara1, lngPra2, lngPara3)
[解説]
セルが入力状態になる直前に実行します。
[引数]
OnMouseMoveと同様。
[戻り値]
0 = PCM側で通常の処理をします(編集モードへの移行)。
1 = PCM側で処理を行ないません。

OnColChanged(lngPara1, lngPra2, lngPara3)
[解説]
セルのフォーカスが移動したときに実行し、カラム位置の情報を取得します。
[引数]
lngPara1:旧カラム番号
lngPara2:新カラム番号
lngPara3:Shiftキーの状態(それぞれの論理和を取れます)
4 = Shiftキー
8 = Ctrlキー
32 = Altキー

OnRowChanged(lngPara1, lngPra2, lngPara3)
[解説]
セルのフォーカスが移動したときに実行し、ロウ位置の情報を取得します。
[引数]
lngPara1:旧ロウ番号
lngPara2:新ロウ番号
lngPara3:Shiftキーの状態(それぞれの論理和を取れます)
4 = Shiftキー
8 = Ctrlキー
32 = Altキー

OnCellChanged(lngPara1, lngPra2, lngPara3)
[解説]
セルのフォーカスが移動したときに実行し、新しいカラム・ロウ位置を取得します。
[引数]
lngPara1:新カラム番号
lngPara2:新ロウ番号
lngPara3:Shiftキーの状態(それぞれの論理和を取れます)
4 = Shiftキー
8 = Ctrlキー
32 = Altキー

OnEditFinish(lngPara1, lngPra2, lngPara3)
[解説]
セルの入力値を変更し、セルの入力状態を終了する直前に実行します。
[引数]
lngPara1:カラム番号
lngPara2:ロウ番号
lngPara3:変更した値

■ 引数の取得と戻り値の設定
Function文の場合
[JScriptの場合]
//@JScript
function OnMouseMove(dblX, dblY, lngKey, lngMode)
{
alert("dblX");//第1引数(X座標)
alert("dblY");//第2引数(Y座標)
alert("lngKey");//第3引数(Shiftキーの状態)
alert("lngMode");//第4引数(マウスの状態)

return 0;//このあと、PCM側の処理を有効(通常処理)にします。
}
[VBScriptの場合]
'@VBScript
Function OnMouseMove(dblX, dblY, lngKey, lngMode)
Msgbox dblX'第1引数(X座標)
Msgbox dblY'第2引数(Y座標)
Msgbox lngKey'第3引数(Shiftキーの状態)
Msgbox lngMode'第4引数(マウスの状態)

OnMouseMove = 0'このあと、PCM側の処理を有効(通常処理)にします。
End Function

Sub文の場合
Sub文はVBScriptの場合のみ使用できます。
[VBScriptの場合]
Sub OnMouseMove_OnLOad()
Set objApp = CreateObject("pcm.app")
Set objDoc = objApp.CurrentPcmDoc
dblX = objDoc.GetEventparam(0) '第1引数(X座標)
dblY = objDoc.GetEventparam(1) '第2引数(Y座標)
lngKey = objDoc.GetEventparam(2) '第3引数(Shiftキーの状態)
lngMode = objDoc.GetParam(3) '第4引数(マウスの状態)

objDoc.Gpd(0) = 0'このあと、PCM側の処理を有効(通常処理)にします。
End Sub

または、従来の記述も動作します。
Sub OnMouseMove_OnLoad()
Set objApp = CreateObject("pcm.app")
dblX = objApp.GetParam(0) '第1引数(X座標)
dblY = objApp.GetParam(1) '第2引数(Y座標)
lngKey = objApp.GetParam(2) '第3引数(Shiftキーの状態)
lngMode = objApp.GetParam(3) '第4引数(マウスの状態)

objDoc.Gpd(0) = 0'このあと、PCM側の処理を有効(通常処理)にします。
End Sub

■ 実行例
各種イベント、引数の使用方法に関するサンプルにつきましては、ヒント集イベント駆動型スクリプティングC [パレットウィンドウ(2)] をご覧下さい。

■ 補足
  • プロジェクトのイベント駆動型スクリプト内に永久ループのような制御不能になるスクリプトを記述した場合は、Ctrl+Shiftキーを同時に押して、プロジェクトファイルを開いて下さい。
    制御を無効にする事ができます。
  • VBScriptの場合、コマンド名_OnLoad()によるコマンド設定は、従来通りSub文による設定のみ有効です。
    また、[プロジェクト]リボン-[プロジェクト設定]-[プロジェクト]の[スクリプト]パネルに記述して下さい。