1.9 標準装備じゃない定数を使いたい場合
 VBS(WSH)でAccessやExcelの定数を使おうとして挫折した、または同じ物を自分で定義して使ってる、なんてことはありませんか?実は、このようなVBS(WSH)で標準装備されていない定数を1.8 プログラムの再利用方法を応用すると使えちゃったりします!
使用例
 標準装備じゃない定数を使う方法です。例では、Access、Excel、DAO(3.6)、ADO(2.7)の定数の値を表示しているだけで、他に特に何もしていません(笑)。が、決して手抜きではなく「使えるよっ!」ということをアピールしたかっただけなので…。

 標準装備じゃない定数を使うには、1.8 プログラムの再利用方法(←wsfの使い方を知らない人は必見!)で使ったwsfを使います。@〜Cの<reference>に何やらゴチャゴチャ書いてありますが、実はこれがポイント!guidobjectの所にAccessやExcelやDAOやADOのidを指定します。たったこれだけで、今まで諦めていた定数が使えるようになります。もちろん、指定すればWordの定数だってOK!

 なお、ExcelとAccessはguidで、DAOとADOのライブラリはプログラムIDで指定しています。 なぜかというと、AccessとExcelはパソコンが違ってもguidが同じみたいだけど、DAOとADOは違っているみたい。なので、DAOとADOはプログラムIDで指定しました。

 ◆エクセルとAccessのguid
Excel 00020813-0000-0000-C000-000000000046
Access 4AFFC9A0-5F99-101B-AF4E-00AA003F0F07

 だったら、AccessとExcelもプログラムIDの方が分かりやすいんじゃ?と思うでしょうが、ExcelはExcel.Sheetで行けるみたい…でも、Accessだけ見つからないんですよ、通るプログラムIDが…(汗)。なので、ツールの方はどちらもguidでやってみたってことっす(笑)

 ■VBScriptでの記述例
こっちがメイン(実行する方)。ファイル名はConstMain.wsfで作成
<job id="ConstJob">

<!-- @エクセルのライブラリを宣言(エクセルマクロの定数を使うため) -->
<reference guid="00020813-0000-0000-C000-000000000046"></reference>

<!-- AAccessのライブラリを宣言(Accessの定数を使うため) -->
<reference guid="4AFFC9A0-5F99-101B-AF4E-00AA003F0F07"></reference>

<!-- BDAO(3.6)のライブラリを宣言(DAOの定数を使うため) -->
<reference object="DAO.DBEngine.36"></reference>

<!-- CADO(2.7)のライブラリを宣言(DAOの定数を使うため) -->
<reference object="ADODB.Connection"></reference>

<script language="VBScript" src="ConstProc.vbs"></script>
<script language="VBScript">

    'Excelの定数を表示します
    WScript.echo "------Excel---------"
    WScript.echo "xlEdgeBottom=" & xlEdgeBottom
    WScript.echo "xlEdgeTop=" & xlEdgeTop
    WScript.echo "xlEdgeRight=" & xlEdgeRight
    WScript.echo "xlEdgeLeft=" & xlEdgeLeft
    WScript.echo "xlContinuous=" & xlContinuous
    WScript.echo "xlThin=" & xlThin
    WScript.echo "xlAutomatic=" & xlAutomatic
    WScript.echo "xlSolid=" & xlSolid

    'Dその他の処理はConstProc.vbsにあるので呼び出します
    Call prcMain

</script>

</job>

こっちは実際の処理を行う方。ファイル名はConstProc.vbsで作成
Option Explicit

Sub prcMain()

    'インポートした側でも、もちろん使えます

    'Accessの定数を表示します
    WScript.echo "------Access--------"
    WScript.echo "acDataAccessPage=" & acDataAccessPage
    WScript.echo "acDefault=" & acDefault
    WScript.echo "acDiagram=" & acDiagram
    WScript.echo "acForm=" & acForm
    WScript.echo "acMacro=" & acMacro
    WScript.echo "acModule=" & acModule
    WScript.echo "acQuery=" & acQuery
    WScript.echo "acReport=" & acReport
    WScript.echo "acServerView=" & acServerView
    WScript.echo "acStoredProcedure=" & acStoredProcedure
    WScript.echo "acTable=" & acTable

    'ついでにDAO(3.6)の定数も表示します
    WScript.echo "--------DAO---------"
    WScript.echo "dbOpenDynamic=" & dbOpenDynamic
    WScript.echo "dbOpenDynaset=" & dbOpenDynaset
    WScript.echo "dbOpenForwardOnly=" & dbOpenForwardOnly
    WScript.echo "dbOpenSnapshot=" & dbOpenSnapshot
    WScript.echo "dbOpenTable=" & dbOpenTable

    'おまけにADO(2.7)の定数も表示します(笑
    WScript.echo "--------ADO---------"
    WScript.echo "adUseClient=" & adUseClient
    WScript.echo "adUseServer=" & adUseServer

End Sub

 ■JScript(JavaScript)での記述例
こっちがメイン(実行する方)。ファイル名はConstMainJ.wsfで作成
<job id="ConstJob">

<!-- @エクセルのライブラリを宣言(エクセルマクロの定数を使うため) -->
<reference guid="00020813-0000-0000-C000-000000000046"></reference>

<!-- AAccessのライブラリを宣言(Accessの定数を使うため) -->
<reference guid="4AFFC9A0-5F99-101B-AF4E-00AA003F0F07"></reference>

<!-- BDAO(3.6)のライブラリを宣言(DAOの定数を使うため) -->
<reference object="DAO.DBEngine.36"></reference>

<!-- CADO(2.7)のライブラリを宣言(DAOの定数を使うため) -->
<reference object="ADODB.Connection"></reference>

<script language="JScript" src="ConstProc.js"></script>
<script language="JScript">

    //Excelの定数を表示します
    WScript.echo("------Excel---------");
    WScript.echo("xlEdgeBottom=" + xlEdgeBottom);
    WScript.echo("xlEdgeTop=" + xlEdgeTop);
    WScript.echo("xlEdgeRight=" + xlEdgeRight);
    WScript.echo("xlEdgeLeft=" + xlEdgeLeft);
    WScript.echo("xlContinuous=" + xlContinuous);
    WScript.echo("xlThin=" + xlThin);
    WScript.echo("xlAutomatic=" + xlAutomatic);
    WScript.echo("xlSolid=" + xlSolid);

    //Dその他の処理はConstProc.vbsにあるので呼び出します
    prcMain()

</script>

</job>

こっちは実際の処理を行う方。ファイル名はConstProc.jsで作成
function prcMain() {

    //インポートした側でも、もちろん使えます

    //Accessの定数を表示します
    WScript.echo("------Access--------");
    WScript.echo("acDataAccessPage=" + acDataAccessPage);
    WScript.echo("acDefault=" + acDefault);
    WScript.echo("acDiagram=" + acDiagram);
    WScript.echo("acForm=" + acForm);
    WScript.echo("acMacro=" + acMacro);
    WScript.echo("acModule=" + acModule);
    WScript.echo("acQuery=" + acQuery);
    WScript.echo("acReport=" + acReport);
    WScript.echo("acServerView=" + acServerView);
    WScript.echo("acStoredProcedure=" + acStoredProcedure);
    WScript.echo("acTable=" + acTable);

    //ついでにDAO(3.6)の定数も表示します
    WScript.echo("--------DAO---------");
    WScript.echo("dbOpenDynamic=" + dbOpenDynamic);
    WScript.echo("dbOpenDynaset=" + dbOpenDynaset);
    WScript.echo("dbOpenForwardOnly=" + dbOpenForwardOnly);
    WScript.echo("dbOpenSnapshot=" + dbOpenSnapshot);
    WScript.echo("dbOpenTable=" + dbOpenTable);

    //おまけにADO(2.7)の定数も表示します(笑
    WScript.echo("--------ADO---------");
    WScript.echo("adUseClient=" + adUseClient);
    WScript.echo("adUseServer=" + adUseServer);

}
Copyright(C) 1999-2006 結城圭介。 All rights reserved