|    | 
     ▼PPNNOOPP さん: 
 
こんばんは 
 
やはり、本来なら、WordVBA で Wordの世界で処理すべきものなんでしょうね。 
ただ、私自身、WordVBAも経験がありませんし、ここは ExcelVBAの板ですので 
おっかなびっくり、ExcelVBAでコードを書いてみました。 
結構処理時間はかかるかもしれませんしロジックの自信度も60%ぐらいですが・・・・ 
 
こちらで、10ファイルぐらいで動かしても結構長くかかります。 
ましてや 2000〜4000ファイル となると、う〜ん・・・・ですねぇ。 
まずは、10個ぐらいで試してみてもらえますか? 
 
Sub Sample() 
  Dim docapp As Object 
  Dim fso As Object 
  Dim myPath As String 
   
  myPath = "c:\TEST"   '★フォルダパスは実際のものに 
   
  Set fso = CreateObject("Scripting.FileSystemObject") 
  Set docapp = CreateObject("Word.Application") 
   
  Retrieve fso, fso.getfolder(myPath), docapp 
   
  docapp.Quit 
   
  MsgBox "処理が完了しました" 
   
End Sub 
 
Sub Retrieve(fso As Object, folder As Object, docapp As Object) 
  Dim subfolder As Object 
  Dim file As Object 
  Dim doc As Object 
  Dim nName As String 
   
  'カレントフォルダ内のファイルを列挙 
  For Each file In folder.Files 
    Set doc = docapp.Documents.Open(Filename:=file.Path) 
    Application.DisplayAlerts = False 
    nName = fso.getparentfoldername(file.Path) & "\" & fso.getbasename(file.Path) & ".doc" 
    doc.SaveAs2 Filename:=nName, FileFormat:=0  'wdFormatDocument 
    Application.DisplayAlerts = True 
    doc.Close 
  Next 
   
  For Each subfolder In folder.SubFolders 
    '再帰的呼び出し 
    Retrieve fso, subfolder, docapp 
  Next 
   
 
End Sub 
 | 
     
    
   |