VBScript のデフォルトの CreateObject() 関数を独自の関数でオーバーライドしたいと考えています。
基本的にVB6のこの例:
http://www.darinhiggins.com/the-vb6-createobject-function/
この行がわかりません:
Set CreateObject = VBA.CreateObject(Class$, ServerName$)
VBSript で "VBA" を参照するにはどうすればよいですか?
VBScript のデフォルトの CreateObject() 関数を独自の関数でオーバーライドしたいと考えています。
基本的にVB6のこの例:
http://www.darinhiggins.com/the-vb6-createobject-function/
この行がわかりません:
Set CreateObject = VBA.CreateObject(Class$, ServerName$)
VBSript で "VBA" を参照するにはどうすればよいですか?
このクイックテストは機能しているようです...
Function CreateObject(className, serverName)
'---- override the CreateObject
' function in order to register what
' object is being created in any error message
' that's generated
Dim source, descr, errNum
WScript.echo "In custom CreateObject"
If Len(serverName) > 0 Then
Set CreateObject = WScript.CreateObject(className, serverName)
Else
Set CreateObject = WScript.CreateObject(className)
End If
End Function
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject", "")
path = fso.GetAbsolutePathName(".")
WScript.echo path
保証はありません!;-)
すべてのコードがそれを使用するようにオーバーライドできるとは思いません。あなたのコードだけです。
その場合、それが何と呼ばれるかは問題ではありません (変更できない既存のコードが大量にある場合を除きます)。CreateObjectEx() や ExCreateObject() などと呼ぶことはできますか? この関数にすべてのエラー処理などを追加させてから、向きを変えてメイン/コアの CreateObject() メソッドを呼び出します