2017-05-14 7 views
-1

ExcelファイルからWord文書を作成するこのVBスクリプトがExcelにあります。Word:Close Select Documents

ただし、同じスクリプトを再実行するたびに、Wordファイルが編集用に開いてロックされていることを確認するメッセージが表示されます。私は手動でタスクマネージャーに行き、開いているすべてのWordプロセスを終了します。特定のWordファイルがOpenであるかどうかを確認するスクリプトはありますか?そうであれば、プロセスを強制終了しますか?

答えて

1

ワード文書を作成する前に、次のコードを配置することによって、プロセスのWINWORD.EXEを閉じることができますすることができます

CreateObject("WScript.Shell").Run "taskkill /f /im WINWORD.EXE", 0 

これを実行したら、ワードファイルの作成に進むことができます。実行中のプロセスが複数ある場合でも、それらはすべて終了します。

ここで/ fはプロセスの強制削除を示し、/ imはプロセス名(この場合はWINWORD.EXE)を渡していることを示します。

taskkillコマンドについての詳細を知るためには、あなたがこのサイトを参照することができますが:https://technet.microsoft.com/en-in/library/bb491009.aspx

EDIT 2: そこに複数のドキュメントが開いていて、あなたが1つだけそれらのを閉鎖したい場合は、以下のコードを書くことができます

ケース1:あなたは、ワードファイルの正確なパス

strPath = "store the word file path in this variable" 

set objDoc = getobject(strPath) 
objDoc.close 

set objDoc = Nothing 

ケースを閉じたことを知って、その特定の文書を閉じます2:あなたが唯一の名前を知っているときではなく、パス

set objWord = getobject(,"word.application") 
set objDocs = objWord.Documents 
for each doc in objDocs 
    If strComp(doc.name,"Document1",1)=0 then 
     doc.close 
     Exit For  
    End If 
next 
set objDocs = Nothing 
set objWord = Nothing 
+0

おかげGman(の名前は、文書1あるとしましょう)! 1つのWord文書(例:Document.docx)だけを削除したい場合はどうすればよいですか?上記のコードは、開いているすべてのWord文書を閉じます。 –

+0

@AngeliqueCastanedaそれについては編集2をご覧ください。 – Gurman

+0

@AngeliqueCastanedaこのソリューションは機能しましたか? – Gurman