2011-08-30 2 views
0

일부 텍스트를 추가하고 텍스트를 추가 한 다음 해당 텍스트를 삭제 한 다음 vbscript를 사용하여 rtf 문서 파일을 저장하고 닫습니다. 여기에 코드입니다 :vbscript로 단어 rtf 파일을 열고 추가, 삭제 및 단어 목록을 닫는 방법

Set objWord = CreateObject("Word.Application") 
objWord.Visible = True 

Set objDoc = objWord.Documents.Open("C:\box\test.rtf") 
Set objSelection = objWord.Selection 
objSelection.Font.Size = "10" 
objSelection.InsertAfter Text:="Hello" 

objSelection.Delete 
objDoc.SaveAs ("C:\box\test.rtf") 
objWord.Quit 

그러나, 나는 파일의 목록이 작업을 수행 할 필요는, 그래서 내가 같은 FileSysObject을 를 사용하는 줄 알았는데 :

Set objFSO = CreateObject("Scripting.FileSystemObject") 
    If objFSO.FolderExists(strDirectory) Then 
    Set objFolder = objFSO.GetFolder(strDirectory) 

' Check that the strDirectory folder exists 
If objFSO.FolderExists(strDirectory) Then 
Set objFolder = objFSO.GetFolder(strDirectory) 

If objFSO.FileExists(strDirectory & strFile) Then 
    Set objFolder = objFSO.GetFolder(strDirectory) 

    For Each objFile In objFolder.Files 
     Set objTextFile = objFSO.OpenTextFile _ 
     (strDirectory & strFile, ForAppending, True) 
     ' Writes strText every time you run this VBScript 
     objTextFile.WriteLine (strText) 
     'objTextFile.WriteLine (strBlankText) 
     objTextFile.Close 
    Next 

등 ... 보관할 것 염두에두고 나는 initallization 변수 코드 중 일부를 생략하고있다.

이 두 가지 방법을 결합하여 파일을 조작하고 모든 파일을 반복 할 수 있습니까? 아니면 잘못 했나요?

이것에 대한 아이디어가 있습니까?

답변

2

예. 두 가지 접근법을 병합 할 수 있습니다. 단순히 반복문 끝에 Word 코드를 이동하여 반복이 끝날 때 활성 문서를 닫아야합니다. Word에 올바른 파일 형식이 열리도록 현재 파일의 파일 확장명을 확인하려면 if를 추가했습니다. 또한이

Set objWord = CreateObject("Word.Application") 
objWord.Visible = True 

For Each objFile In objFolder.Files 
    if objFSO.GetExtensionName(objFile.path) = "rtf" then 
     Set objDoc = objWord.Documents.Open(objFile.path) 
     Set objSelection = objWord.Selection 
     objSelection.Font.Size = "10" 
     objSelection.InsertAfter Text:="Hello" 

     objSelection.Delete 
     objDoc.SaveAs objFSO.BuildPath("C:\box", objFSO.GetBaseName(objFile.path) & "-test.rtf") 
     objDoc.Close 
    end if 
Next 

objWord.Quit 

당신은 또한 당신의 변수 초기화 코드를 포함해야합니다을 덮어 쓰지 않도록 약간은 출력 파일의 이름을 변경합니다, 그러나 이것은 출발점이어야한다.

FileSystemObject reference

+0

이것은 작동합니다! 도와 주셔서 감사합니다! –