Tipp 0256 Dokumente konvertieren
Autor/Einsender:
Datum:
  Angie
14.07.2002
Entwicklungsumgebung:   Word 97
Die Anzahl der Möglichkeiten ein Word-Dokument explizit unter einem bestimmten Format zu speichern, hängt von den auf dem PC installierten Dateikonvertierungsprogrammen ab, die beim Setup von Microsoft Office oder ggf. durch Installieren zusätzlicher Dateikonvertierer hinzugefügt wurden.
Wird beispielsweise bei der Installation von Word 2000 zunächst eine minimale lauffähige Version installiert, wird das Konvertierungsprogramm Word 97-2000 & 6.0/95 – RTF nicht mitinstalliert, dieses wird vielmehr beim ersten Zugriff auf die Funktion und nach Bestätigung einer entsprechenden Mitteilung automatisch nachinstalliert.
In folgendem Beispiel wird ein Word 97-Dokument im Format Word 97 & 6.0/95 – RTF gespeichert, wobei zunächst überprüft wird, ob das entsprechende Dateikonvertierungsprogramm installiert ist.
 
Option Explicit

Sub SaveAsMSWord6RTFExp()
  Dim fConverter   As FileConverter
  Dim strClassName As String

  Dim wrdDoc       As Document
  Dim strFileName  As String
  Dim blnFileSaved As String

  If Documents.Count = 0 Then Exit Sub

  strClassName = "MSWord6RTFExp"

  Set wrdDoc = ActiveDocument
  strFileName = "C:\Temp\Test_MSWord6RTFExp.doc"

  For Each fConverter In FileConverters
     With fConverter
        If .ClassName = strClassName Then
           wrdDoc.SaveAs FileName:=strFileName, _
              FileFormat:=.SaveFormat
            blnFileSaved = True
            Exit For
        End If
     End With
  Next fConverter

  If blnFileSaved Then
    MsgBox "Das Dokument wurde erfolgreich im Format " & _
            vbCrLf & "Word 97 & 6.0/95 - RTF " & _
            "gespeichert !", vbOKOnly + vbInformation

  Else
    MsgBox "Der Konverter Word 97 & 6.0/95 - RTF (" & _
          strClassName & ") ist nicht installiert!", _
          vbOKOnly + vbInformation
  End If
  Set wrdDoc = Nothing
End Sub
 
Zeichnet man in Word mit dem Makro-Rekorder ein Makro zum Speichern einer Datei z. B. im Format Word 97 & 6.0/95 – RTF auf, dann wird als FileFormat eine eindeutige Zahl, die das externe Dateikonvertierungsprogramm spezifiziert, zurückgegeben. Beispiel:
 
ActiveDocument.SaveAs FileName:="TestWord6.doc", FileFormat:=105
 
Nachdem diese Zahl aber PC-abhängig ist, also auf einem anderen PC nicht unbedingt dieselbe ist, sollte für die Angabe des Dateiformats der Klassenname benutzt werden, der z. B. wie folgt ermittelt werden kann. Mit der CanSave- bzw. der CanOpen-Eigenschaft kann festgestellt werden, ob ein FileConverter-Objekt zum Speichern oder Öffnen von Dokumenten verwendet werden kann.
 
Option Explicit

Sub GetConverterClassName()
  Dim fConverter As FileConverter

  For Each fConverter In FileConverters
    With fConverter
      If .CanSave = True Then
        Debug.Print _
              "Format: " & .FormatName & vbCr & _
              "Klassen-Name: " & .ClassName & vbCr & _
              "Datei-Endung: " & .Extensions & vbCr
      End If
    End With
  Next fConverter
End Sub
 
Hinweis
Die im Download befindlichen *.bas-Dateien können in Word im VB-Editor importiert werden. Hier sei darauf hingewiesen, dass die Prozeduren in einem AddIn oder Dokumentvorlage (*.dot) importiert werden sollten, und nicht in dem Dokument das konvertiert werden soll, da nicht alle Dateiformate VBA-Prozeduren zulassen bzw. unterstützen, wie z. B. HTML.
Weitere Links zum Thema
Dokumente bearbeiten
Dokument schreibgeschützt?

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
Word-Version
95
97
2000
2002 (XP)
2003
2007
2010


Download  (3,6 kB) Downloads bisher: [ 943 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Dienstag, 26. Juli 2011