2012-03-19 5 views
1

Microsoft Word에서 스마트 인용 부호 (중괄호라고도 함) 사용을 제어하기 위해 2 개의 VBScript .vbs 파일을 컴파일했습니다. VBScript를 사용하여 Microsoft Word 기능을 수행하는 방법을 실험하고 있습니다.VBScript로 Microsoft 단어 옵션 제어

내가 원하는 결과는 다음과 같습니다. Microsoft Word 문서를 열어 놓은 상태에서 .vbs 파일 중 하나를 열어서 즉시 유효한 따옴표를 바꿀 수 있고 역으로 열기를 원할 수 있습니다. 다른 .vbs 파일을 사용하면 스마트 쿼트를 즉시 해제 할 수 있습니다.

Microsoft Word 문서를 열어 두는 동안 불행히도 적절한 .vbs 파일을 두 번 클릭하여이 스크립트를 실행해도 아무런 효과가 없습니다. 그러나 Microsoft Word를 닫은 상태에서 .vbs 파일 중 하나를 열어 (두 번 클릭하여) Microsoft Word를 열면 스마트 따옴표 설정에 .vbs 파일의 스크립트가 반영됩니다. 아래의 .vbs 파일에서 스크립트를 재현했습니다. 내가 실험하고 있다고 말했듯이, 아포스트로피가 앞에 오는 각각의 정크 코드 라인이있다. 앞서 말한 결과를 얻기 위해 스크립트를 어떻게 수정합니까? 도움을 주시면 대단히 감사하겠습니다. 스마트 따옴표를 해제하기위한 Stuartzz

(.vbs 인 파일)

스크립트 (.vbs 인 파일)

On Error Resume Next 
Set objWord = CreateObject("Word.Application") 
'objWord.Visible = True 
Set objOptions = objWord.Options 
objOptions.AutoFormatAsYouTypeReplaceQuotes = False 
objOptions.AutoFormatReplaceQuotes = False 
ObjWord.Quit 

스크립트에 스마트 따옴표를 터닝 :

On Error Resume Next 
Set objWord = CreateObject("Word.Application") 
'objWord.Visible = True 
Set objOptions = objWord.Options 
objOptions.AutoFormatAsYouTypeReplaceQuotes = True 
objOptions.AutoFormatReplaceQuotes = True 
ObjWord.Quit 

VBScript를 버전 5.8 .7601.16978 .net 프레임 워크 버전 v4.0.30319 Windows 7 Ultimate 서비스 팩 1 64 비트 운영 체제 Microsoft Office Professional Plus 2010 Microsoft Word 14.0.5128.5000 (64 비트)

답변

0

CreateObject을 사용하면 Word 응용 프로그램의 새 인스턴스가 시작됩니다. 현재 실행중인 것은 영향을 미치지 않습니다. 현재 실행중인 인스턴스를 가져 오려면 GetObject을 사용해야합니다.

그래서,이 대신 :

Set objWord = GetObject(, "Word.Application") 

그 모든 말했다되고

당신은 VBA로 작성된 매크로를 사용하는 경우, 그것은 것 :

Set objWord = CreateObject("Word.Application") 

사용이 말씀의 첫 번째 인스턴스를 잡아합니다 항상 현재 열려있는 파일 내에서 실행됩니다. 더 쉽게 액세스 할 수 있도록 툴바 버튼을 적용 할 수도 있습니다.

+0

감사합니다. 이전에 GetObject를 시도했지만 쉼표를 사용하지 않았습니다. 귀하의 대답은 "저장", "저장 안 함"및 "취소"라는 대화 상자를 불러옵니다. 이스케이프 키를 누르거나 "취소"를 클릭하면 문제가 없습니다. 대화 상자가 나타나지 않도록하는 방법이 있습니까? 아니면 이스케이프 키를 누르는 것을 시뮬레이트하는 스크립트를 사용해야합니까? VBA에서 그 문제는 존재하지 않습니다. VBScript를 사용하여 음성 인식 매크로에 스크립트를 넣을 수 있습니다. – Stuartzz

+0

Microsoft Word의 기본 동작은 문서가 의도적으로 닫히거나 응용 프로그램이 종료 될 때 변경 내용을 저장하라는 메시지입니다.이 오류는 스크립트가 objWord.Quit에 도달 할 때 발생합니다. Quit 메서드는 Word에이 상황을 처리하는 방법을 알려주는 단일 매개 변수를 사용합니다. 사용할 수있는 값은 0, -1 및 -2로 변경 사항을 저장하지 않고 종료하고 변경 사항 저장을 종료하고 변경 사항을 저장하라는 메시지를 각각 나타냅니다. 필요한 항목에 따라 다음과 같이하십시오. 'objWord.Quit 0' – Nilpo

+0

대단히 감사합니다. 나는이 글을 스크립트에서 완전히 제거하여 단어 문서가 닫히지 않도록하였습니다. – Stuartzz