15. Oktober 2013

Automatisch von DOC zu DOCX und von XLS zu XLSX

Der Umstieg auf das DOCX- und XLSX-Format hat sich eigentlich seit Office 2007 angeboten, doch manche Übersetzerin arbeitet mit Auftraggebern zusammen, die erst jetzt dieses „neue“ Format standardmäßig nutzen. Für eine möglichst bequeme Weiterverwendung „alter“ Word- und Excel-Dokumente – ohne aufwändige händische Dateiformatumstellung beim Speichern – bietet es sich an, die alten Dateien per Makro in das neue Format zu überführen. Die folgenden beiden Makros kopieren DOC- und XLS-Dateien und speichern sie im neuen Word- bzw. Excel-Format ab.

Excel-Makro zur automatischen Konvertierung
vom XLS- ins XLSX- oder XLSM-Format

Das folgende Makro für Word 2007 (und Folgeversionen) stammt ursprünglich von answers.microsoft.com. Es kopiert alle im Ordner D:\Exceldateikonvertierung enthaltenen XLS-Dateien und konvertiert sie in das XLSX- bzw. das XLSM-Format. XLSX wird dabei für Dateien verwendet, die keine Makros enthalten, und XLSM für Dateien mit Makros.

Sub ConvertToXlsx()
 Dim strPath As String
 Dim strFile As String
 Dim wbk As Workbook
 ' Path must end in trailing backslash
 strPath = "D:\Exceldateikonvertierung\"
 strFile = Dir(strPath & "*.xls")
 Do While strFile <> ""
  If Right(strFile, 3) = "xls" Then

   Set wbk = Workbooks.Open(Filename:=strPath & strFile)

   If wbk.HasVBProject Then
    wbk.SaveAs Filename:=strPath & strFile & "m", _
     FileFormat:=xlOpenXMLWorkbookMacroEnabled
   Else
    wbk.SaveAs Filename:=strPath & strFile & "x", _
     FileFormat:=xlOpenXMLWorkbook
   End If
   wbk.Close SaveChanges:=False
  End If
  strFile = Dir
 Loop
End Sub

Der Speicherort, auf den das Makro bei Konvertierung zugreift, kann durch die Anpassung der Makro-Zeile strPath = "D:\Exceldateikonvertierung\" geändert werden.

Word-Makro zur automatischen Konvertierung vom DOC- ins DOCX- oder DOCM-Format

Das folgende Makro kopiert alle im Ordner D:\Worddateikonvertierung enthaltenen DOC-Dateien und konvertiert sie in das DOCX- bzw. das DOCM-Format (DOCX für Dateien, die keine Makros enthalten, und DOCM für Dateien mit Makros).

Sub VonDocNachDocx()
 Dim strPath As String
 Dim strFile As String
 Dim doc As Document
 ' Pfadangabe muss mit einem Backslash enden
 strPath = "D:\Worddateikonvertierung\"
 strFile = Dir(strPath & "*.doc")
 Do While strFile <> ""
  If Right(strFile, 3) = "doc" Then

   Set doc = Documents.Open(FileName:=strPath & strFile)

   If doc.HasVBProject Then
    doc.SaveAs FileName:=strPath & strFile & "m", _
     FileFormat:=wdFormatXMLDocumentMacroEnabled
   Else
    doc.SaveAs FileName:=strPath & strFile & "x", _
     FileFormat:=wdFormatXMLDocument
   End If
   doc.Close SaveChanges:=False
  End If
  strFile = Dir
 Loop
End Sub

Auch hier kann der Speicherort, auf den das Makro bei Konvertierung zugreift, durch die Anpassung der Makro-Zeile strPath = "D:\Worddateikonvertierung\" geändert werden.

1 Kommentar:

Gert Nagsch hat gesagt…

Wirklich ein hilfreiches Makro. Denn ich habe noch wirklich viele alte Word und Excel Files rumliegen die einfach mal auf den neuesten Stand der Dinge gebracht werden müssen. Zumindest habe ich das Problem mit meinem Übersetzungsbüro nicht. Da neue Files ja schon Standartmäßig von beiden Seiten in xlsx und docx verschickt werden. Warum Microsoft das aber geändert hat, frage ich mich bis heute. Steckt wohl wieder die Geldmacherei dahinter :)
Lg, Gert

Kommentar veröffentlichen