2016-08-29 1 views
0

매크로를 열지 않고 word에서 실행하는 방법. 이전에 물어 본 동일한 질문을 겪었습니다.
해결 방법은 다음과 같습니다매크로를 열지 않고 매크로를 실행하는 방법은 무엇입니까?

Dim Word  
Dim WordDoc 

Set Word = CreateObject("Word.Application")  
Word.Visible = False 

Set WordDoc = Word.Documents.open("D:\working_folder\abc.doc")  
Word.Run "<macroname>"  
WordDoc.Save 

Word.Quit   
Set WordDoc = Nothing 
Set Word = Nothing 

이 너무 나를 위해 잘 작동하지만,이 경우 파일 이름 ("abc.doc") 특정입니다.

동일한 폴더에있는 모든 단어 파일에 대해 매크로를 실행하려면 어떻게해야합니까?
매크로는 모든 파일에 정의되어 있으므로 폴더의 모든 파일 이름을 가져 오는 방법을 알고 싶습니다. 이 같은

+0

이 질문은 폴더의 모든 파일을 열거하는 방법이나 다른 파일의 파일에 정의 된 매크로를 실행하는 방법에 대한 질문입니까? –

+0

FTP를 통해 특정 폴더에 파일을 대량으로 가져올 때 파일을 열지 않고도 특정 폴더에 게시 된 모든 MS 워드 파일에서 매크로를 실행할 수 있습니다. – Pradeep

+0

예, 그게 분명합니다. 마르코가 모든 파일에 정의되어 있습니까? (폴더의 모든 파일 이름을 얻는 방법을 알고 싶거나) 정의 파일 (다른 질문) 이외의 파일에서 마르코를 실행하려고합니까? –

답변

3

테스트되지 않은,하지만 뭔가 : 당신은 비록 들어있는 파일을 열지 않고 매크로를 실행할 수 없습니다

Dim Word, fldr, f  
Dim WordDoc 

Set Word = CreateObject("Word.Application")  
Word.Visible = False 

fldr = "D:\working_folder\" 
f = Dir(fldr & "*.doc*") 

Do while f<>"" 

    Set WordDoc = Word.Documents.open(fldr & f)  
    Word.Run "<macroname>"  
    WordDoc.Save 
    WordDoc.Close 
    f = Dir() 

Loop 

Word.Quit   
Set WordDoc = Nothing 
Set Word = Nothing 

.

+0

위 테스트를 받았지만 작동하지 않습니다. – Pradeep

+0

특정 오류 메시지? 비슷한 절차를 사용했기 때문에 Tim의 솔루션이 작동하지 않아야하는 이유는 없습니다. 아마 메일 병합을 자동화하는 매크로를 실행하려고 시도하지 않는 한 말입니다. –

+0

오류 : 형식이 일치하지 않습니다 : 'Dir' 코드 : 800A000D – Pradeep