AW: Eingebundenes Word Objekt aus Excel befüllen
26.05.2009 14:55:38
fcs
Hallo Matze,
wie man das Einfügen der Excel-Inhalte in das eingebette Worddokument hinbekommt weiss ich nicht. Ich kenne die entsprechenden Objekteigenschaften nicht, die ich im Code anprechen muss.
Du kannst aber von Excel aus deine Worddatei öffnen, die Informationen eintragen (hierzu am Besten Textmarken im Worddokument einfügen), dann die Worddatei unter einem temporären Namen speichern und im neuen Tabellenblatt als Objekt einfügen. Dann die temporäre datei wieder löschen.
Schaut dann als Makro wie folgt aus.
Gruß
Franz
'Für Funktion des Makros muss im VBA-Editor unter Extras _
für diese Datei der Verweis auf die _
Microsoft Word x.y Object Library aktiviert werden.
Private Sub CommandButton1_Click()
Dim strDateiWord As String, wks As Worksheet
Dim objDoc As Word.Document, objApp As Object
'Name der Worddatei
strDateiWord = "C:\Lokale Daten\Test\TestWordObjekt.doc"
'Word-Application-Objekt anlegen
Set objApp = VBA.CreateObject("Word.Application")
'Worddatei öffnen
Set objDoc = objApp.Documents.Open(Filename:=strDateiWord)
With objDoc
'an den Textmarken im Worddokument Zellinhalte einfügen
.Bookmarks("Excel01").Range.Text = Worksheets("Start").Cells(5, 2).Text
.Bookmarks("Excel02").Range.Text = Worksheets("Start").Cells(6, 2).Text
.Bookmarks("Excel03").Range.Text = Worksheets("Start").Cells(7, 2).Text
End With
'Worddatei unter temporärem Namen speichern
strDateiWord = ThisWorkbook.Path & Application.PathSeparator _
& "TempWordObjekt.doc"
objDoc.SaveAs Filename:=strDateiWord
'Dokument und Anwendungsobjekt schließen
objDoc.Close
objApp.Quit
'Neues Blatt einfügen und Worddatei als Objekt einfügen
Sheets.Add after:=Sheets(ThisWorkbook.Sheets.Count)
Set wks = ActiveSheet
wks.Name = "Angebot"
wks.OLEObjects.Add Filename:=strDateiWord, Link:=False, _
DisplayAsIcon:=False
Worksheets("Start").Activate
'Temporäre Worddatei wieder löschen
Kill strDateiWord
End Sub