2016-08-29 17 views
0

マクロを開かずにwordで実行する方法。 私は前に同じ質問をしました。
ソリューションは、次のとおりです。マクロを開かずに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

私はすべてのMSワードファイルで特定のフォルダに投稿されたマクロをFTPを使って特定のフォルダに一括してファイルを開くことなく開くことができます – 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

関連する問題