1

Visual Studio 6 のマクロで、外部プログラムを実行したかったので、次のように入力しました。

shell("p4 open " + ActiveDocument.FullName)

これにより、型の不一致の実行時エラーが発生しました。私がタイプしなければならなかったのはこれでした:

Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
strResult = wshShell.Run("p4 open " + ActiveDocument.FullName)

ここで何が起こっているのですか?そのナンセンスは本当に必要ですか、それとも何かを見逃していますか?

4

4 に答える 4

1

VBScript は Visual Basic ではありません。

于 2008-08-21T15:47:39.180 に答える
1

lassevk指摘したように、VBScript は Visual Basic ではありません。

VBScript に組み込まれているオブジェクトは WScript オブジェクトだけだと思います。

WScript.Echo "Hello, World!"

ドキュメントから

WScript オブジェクトは、Windows Script Host オブジェクト モデル階層のルート オブジェクトです。プロパティとメソッドを呼び出す前にインスタンス化する必要はなく、任意のスクリプト ファイルからいつでも使用できます。

他のすべては、CreateObject 呼び出しを介して作成する必要があります。これらのオブジェクトの一部をここにリストします

Shell オブジェクトは、メソッドを呼び出す場合に作成する必要がある他のオブジェクトの 1 つです。

1 つの注意点は、VBScript で次のように RegExp オブジェクトをインスタンス化できるという点で、RegExp が一種の組み込みであることです。

Dim r as New RegExp
于 2008-08-26T21:57:10.593 に答える
0

これを試してください:

Shell "p4 open" & ActiveDocument.FullName
于 2008-08-21T16:02:04.510 に答える
-1

VB6 は + ではなく & を使用して文字列を連結します。スペースがある場合は、ファイル名が引用符で囲まれていることを確認する必要があります。次のようにしてみてください。

Shell "p4 open """ & ActiveDocument.FullName & """"
于 2008-08-26T22:26:29.367 に答える