Einführung "VBA mit Microsoft Office"

Code Snippet "VBA Word"

Textdokument von Unicode UTF8 zu Unicode (LittleEndian) konvertieren

Das Problem ist, dass dies unter Word 2000 (W9) und Word 2003 anders gemacht wird

Public Sub convertutf8tounicode(ByVal straltpath As String, ByVal strnewpath As String)
  
  Dim objAppWord 'As Word.Application
  
  Set objAppWord = CreateObject("Word.Application")
  
  If CLng(objAppWord.Version) > 9 Then
    objAppWord.Documents.Open FileName:=straltpath, ConfirmConversions:=False, _
      ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
      PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
      WritePasswordTemplate:="", Format:=Word.wdOpenFormatAuto, XMLTransform:="", _
      Encoding:=65001
  
    'Achtung: Ab Word XP wird das Format beim Speichern mit Encoding=1200 festgelegt
    objAppWord.ActiveDocument.SaveAs FileName:=strnewpath, FileFormat:=Word.wdFormatText, _
      LockComments:=False, Password:="", AddToRecentFiles:=False, WritePassword _
      :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
      SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
      False, Encoding:=1200, InsertLineBreaks:=False, AllowSubstitutions:=False, _
      LineEnding:=Word.wdLFOnly
      
  Else
    'Word 2000 oder tiefer
    objAppWord.Documents.Open FileName:=straltpath, ConfirmConversions:=False, _
      ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
      PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
      WritePasswordTemplate:="", Format:=wdOpenFormatAuto
      
    ' .wdFormatUnicodeText
    'Achtung: In Word 2000 wird das Format vor dem Speichern in Eigenschaft SaveEncoding festgelegt
    objAppWord.ActiveDocument.SaveEncoding = 1200 ' msoEncodingUnicodeLittleEndian
    objAppWord.ActiveDocument.SaveAs FileName:=strnewpath, FileFormat:= _
      Word.wdFormatEncodedText, LockComments:=False, Password:="", _
      AddToRecentFiles:=False, WritePassword:="", ReadOnlyRecommended:=False, _
      EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
      SaveAsAOCELetter:=False
  End If
  objAppWord.ActiveDocument.Close
  
End Sub