![]() |
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
|
|
|
|
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.
|
|
|
|
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: [ 1020 ]
|
|
|