ADODB.streamをVBScriptから呼び出す場合等、VBScript(あるいはClassic ASP)内でbyte配列を扱いたい場合があります。
例えば、上記記事で紹介しているのADOのWriteメソッドの場合、引数としてバリアント型にbyte配列を格納して渡して上げる必要がありますが、そもそもVBScriptでは明示的にbyte配列を記述することはできないため、工夫が必要になります。
■Microsoft.XMLDOMを使ってbyte配列を作る
方法はいくつかあると思いますが、一番手っ取り早いのはMicrosoft.XMLDOMを使う方法です。
Microsoft.XMLDOMのHex形式の文字列("1A0FB3"のような形式)をバイト配列に変換する機能を使って、例えば以下のように関数化します。
Function HexToBArray(Hex)
With CreateObject("Microsoft.XMLDOM").createElement("aaaa")
.DataType = "bin.hex"
.Text = Hex
HexToBArray= .NodeTypedValue
End With
End Function
あとは、この関数の戻り値をVBScriptのバリアント型の変数に格納しておけば、別の関数の引数として使うことが出来ます。