2017-01-17 1 views

答えて

0

フォルダ内のcmdウィンドウを開き、dir /s /b >> filename.txtと入力して、パス内のすべてのファイルの平文のリストを取得します。これにより、ディレクトリ内のすべてのファイルをリストしたテキストファイルが作成されます。私があなただったら、あなたは1000個のファイルでそれをやろうとしているので、次の

のための入力として、私はdoc.closeにブレークポイントを設定します

使用すると、最初の数にそれをテストします。

Sub SaveAsDocX(FileListFullPath As String) 
    'for saving to new filename 
    Dim newname As String 
    'array of docs, items in that array, document object from those items 
    Dim docs As Variant 
    Dim item As Variant 
    Dim doc As Document 

    docs = getfiles(FileListFullPath) 

    For Each item In docs 
     If Right(item, 4) = ".doc" Then 
      Set doc = Application.Documents.Open(FileName:=item) 
      doc.Activate 

      newname = item & " - updated.docx" 

      'first save as new format then update compatibility, then save again 
      doc.SaveAs2 FileName:=newname, FileFormat:=wdFormatDocumentDefault 
      ActiveDocument.SetCompatibilityMode (wdCurrent) 
      doc.SaveAs2 FileName:=newname, FileFormat:=wdFormatDocumentDefault 

      doc.Close 
     End If 
    Next 
End Sub 



Function getfiles(Optional FileName As String = "Dir.txt") 
    Dim FileList() As String 

    Open FileName For Input As #1 
    FileList = Split(Input$(LOF(1), #1), vbCrLf) 
    Close #1 

    getfiles = FileList 

End Function 
関連する問題