Runコマンド(特殊コマンド)
かなり専門家向けの仕様ですが、ExcelのマクロあるいはVBAを呼び出すこともできます。ExcelのVBAは、強力でWindowsに用意されたプログラマー用のAPI(アプリケーション・インターフェース)を呼び出せます。即ち、XCuteは、Windowsの資源を全て利用できるのです。
XCuteの良さは、プログラムのようなコードを記述することなく、それなりのアプリケーションが作成できることなので、VBAの呼び出しはお勧めではありません。また、VBAは保守性を悪くします。
VBAの呼び出しは、本RUNコマンドを使用します。
マクロには、変数をパラメータとして指定することは出来ません。マクロが起動した状態では、ひな型はワークブックへコピーされ、そのワークシートにSetコマンドで指定された値は戻されています。このワークシートがアクティブなシートで、このシートからセルの値を読み取るようなプログラムを記述します。
マクロの内部でアクティブなシートを変更した場合には、終了時点で必ず元のシートに戻してください。
実際にマクロ(VBA)を利用されているのは、つぎのようなケースです。
・入力値のエラーの評価
・FilterやChg_Sqlが複雑な場合。
指定されたVBAが正しく起動されることを確認するには、VBAにブレークポイントを設定し、ブラウザからURLを指定します。
VBAが起動されないトラブルには、RunAやRunBの指定が誤っている他に、VBAにエラーが発生している場合があります。VBAのエラーは下の図のように、コンパイルすると発見できます。
注意:ひな型シートにVBAを記述した場合、Private SubやPrivate
Functionとし、Privateを付けて関数やマクロを定義してください。これを怠ると、ブラウザからVBAを呼び出されセキュリティ・ホールとなりかねません。
書式
RunX=ひな型ブック名!マクロ名
RunXのXには、B,A,Lを使います。
RunBはBeforeで、XCute本体の読み書きの実行前にマクロが実行されます。
RunAはAfterで、XCute本体の読み書き後にマクロが実行されます。
RunLはLastで、OverWriteなどが全て終了した後に実行されます。
WriteSheetの場合は、XCute本体は実行されないので、RunAとRunBは差はなく、どちらかを指定しても差し支えありません。
Runは、R3C8以降に呼び出すOverWriteやEXT_SQLコマンド用です。
適用位置
R2C8以降のセル(RunB,RunA,RunL)
(R2C8以降のセルにはRunB、Filter、Chg_Sqlなどが記述されますが、RunBが先に実行され、その後で再度R2C8以降のセルがスキャンされFilterやChg_Sqlコマンドが評価されますので、RunBでFilterやChg_SqlコマンドをR2C8以降にセルに記述できます。)
R3C8以降のセル(Run)
たとえば、R3C8から順にRun、Filter、OverWriteと指定された場合、Filterに基づきOverWriteが実行され、その後Runが実行されます。 したがってRunとセットのFilterなどをRunにより書き換えができるものではありません。R3C8のRunは、FilterやNextと同じ扱いで、OverWriteなどの特殊コマンドとセットで使います。
利用可能バージョン
XCute
Ver6.0.0以降(RunL)
参照
○ひな型シート2行目
○ひな型シート3行目