문제

Visual Studio 6용 매크로에서 외부 프로그램을 실행하고 싶어서 다음과 같이 입력했습니다.

shell("p4 open " + ActiveDocument.FullName)

유형 불일치 런타임 오류가 발생했습니다.결국 내가 입력해야 했던 내용은 다음과 같습니다.

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

여기서 무슨 일이 일어나고 있는 걸까요?그 말도 안되는 소리가 정말 필요한가요, 아니면 제가 뭔가를 놓친 걸까요?

도움이 되었습니까?

해결책

처럼 라세브크 지적했듯이 VBScript는 Visual Basic이 아닙니다.

VBScript에 내장된 유일한 개체는 WScript 개체라고 생각합니다.

WScript.Echo "Hello, World!"

문서에서

wscript 객체는 Windows 스크립트 호스트 객체 모델 계층의 루트 객체입니다.속성과 방법을 호출하기 전에 인스턴스화 할 필요는 없으며 항상 스크립트 파일에서 사용할 수 있습니다.

다른 모든 것은 CreateObject 호출을 통해 생성되어야 합니다.그 개체 중 일부는 다음과 같습니다. 여기에 나열됨.

Shell 개체는 다음 중 하나입니다. 다른 메소드를 호출하려는 경우 생성해야 하는 객체입니다.

한 가지 주의할 점은 RegExp가 일종의 내장되어 있어 VBScript에서와 같이 RegExp 개체를 인스턴스화할 수 있습니다.

Dim r as New RegExp

다른 팁

VBScript는 Visual Basic이 아닙니다.

이것을 시도해 보십시오:

Shell "p4 open" & ActiveDocument.FullName

VB6에서는 + 대신 &를 사용하여 문자열을 연결하므로 공백이 있을 경우 파일 이름을 따옴표로 묶어야 합니다.다음과 같이 시도해 보세요.

Shell "p4 open """ & ActiveDocument.FullName & """"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top