Problem mit OLE Automation Word (Grafiken in Headerdateien)

  • VB6

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Schosch.

    Problem mit OLE Automation Word (Grafiken in Headerdateien)

    Hallo, ich habe mal wieder eine Frage. Word bringt mich fast zur Weissglut...

    Ich möchte mein Problem mal beschreiben. Ich füge mit meinem VB Programm an verschiedene Textmarken meinen Text ein. Dies klappt auch wunderbar. Ich kann auch (fast) problemlos (zum diesem Problem komme ich unten noch) Grafiken einfügen.

    Nun aber mein wirkliches Problem: Ich benötige eine Headerdatei für jede Seite. Diese ist auf der Seite 1 anders als auf den folgenden Seiten, ab Seite 2 aber gleich. Wenn ich dies mit Text realisiere (wie im Code) dann funktioniert das einwandfrei. Sobald ich jedoch meine Grafiken in die Headerdatei einfüge erhalte ich seltsamerweise zwischen der ersten und zweiten Seite in meinem Word Dokument einen riesen Abstand. bzw die Seite1 (mit der Grafik) zweimal. ab Seite 3 funktioniert es dann wie gewollt. Die Textmarken tmSeite1 und 2 sind korrekt in Word in die Headerdatei eingefügt (es klappt ja schliesslich auch mit Text)



    Mein Quellcode sieht so aus: (Hier mit Text, Grafik auskommentiert)

    Visual Basic-Quellcode

    1. Option Explicit
    2. 'Name der Dokumentvorlage (*.doc)
    3. Private Const mc_DocTemplate As String = "Test.doc"
    4. 'Pfad inkl. Dateiname der Dokumentvorlage (*.doc)
    5. Private m_strTemplateFile As String
    6. '
    7. Private Sub Command1_Click()
    8. Form14.Visible = False
    9. End Sub
    10. Private Sub Form_Load()
    11. 'Pfad und Dateiname der Word-Documentvorlage zusammensetzen
    12. ' (Pfad dieser Arbeitsmappe + Konstante)
    13. Dim strPath As String 'Pfad dieser Anwendung
    14. strPath = App.Path
    15. If Right$(strPath, 1) <> "\" Then strPath = strPath & "\"
    16. m_strTemplateFile = strPath & mc_DocTemplate
    17. End Sub
    18. Private Sub cmdCreateNewDoc_Click()
    19. Dim lobjWord As Word.Application
    20. Dim lwrdDoc As Word.Document
    21. Set lobjWord = CreateObject("Word.Application")
    22. 'Set lwrdDoc = lobjWord.Documents.Add("C:\Dokumente und Einstellungen\Studium\Desktop\Vorlage.doc")
    23. Set lwrdDoc = lobjWord.Documents.Add( _
    24. Template:=m_strTemplateFile, NewTemplate:=False)
    25. With lwrdDoc
    26. .Bookmarks("tmSeite1").Range.Text = "Seite1vbText"
    27. .Bookmarks("tmSeite2").Range.Text = "Seite2vbText"
    28. '.Bookmarks("tmSeite1").Range.InlineShapes.AddPicture FileName:= _
    29. ' "D:\Liba\Grafiken\LIBA KOPF Seite 1.jpg", LinkToFile:=False, SaveWithDocument:= _
    30. ' True
    31. '
    32. ' .Bookmarks("tmSeite2").Range.InlineShapes.AddPicture FileName:= _
    33. ' "D:\Liba\Grafiken\LIBA KOPF Seite 2.jpg", LinkToFile:=False, SaveWithDocument:= _
    34. ' True
    35. '.PrintOut
    36. .Application.Visible = True
    37. End With
    38. End Sub


    Hat jemand eine Idee?

    Nun zu meiner zweiten kleinen Frage:

    Wenn ich eine Grafik einfüge geht dies nur wenn ich den kompletten Pfad angebe, also "D:\Liba\Grafiken\LIBA KOPF Seite 2.jpg", nicht aber wenn ich nur "LIBA KOPF Seite 2.jpg" angebe (sämtliche Möglichkeiten mit / habe ich schon versucht)... wie umgehe ich das?

    Danke schonmal für eure Hilfe!
    Hi, Schosch.

    Fällt dein Problem nicht eigentlich in den VBA-Bereich? Bin mir da jetzt nicht ganz sicher. Bei deinem zweiten Problem könnte dir App.Path helfen. Eine Datei, die sich im selben Pfad befindet wie das Programm selbst, kann z.B. mit App.Path & "Datei.doc" aufgerufen werden, das geht natürlich auch mit Unterordnern: App.Path & "\SubDirectory1\SubDirectory2\Datei.doc".

    mfG,

    Maloclm
    Vielen Dank schonmal, werde ich gleich mal testen.

    Ich weiss nicht genau ob mein Problem in den VBA Bereich fällt, mein Programm selbst hat eigentlich nichts mit VBA zu tun, deshalb habe ich es hier gepostet. Falls ich falsch liege so soll es ein Mod bitte verschieben ;)
    Hi, vielen Dank Malcolm, das mit dem App.Path funktioniert einwandfrei. Noch ein kleiner Zusatz dazu: Die Datei muss immer ein "\" davor haben, also nicht nur App.Path & "Datei.doc" schreiben sondern: App.Path & "\Datei.doc"

    Leider besteht mein Problem mit der leeren Seite immer noch, bitte dringend um Hilfe, mir gehen die Ideen aus :/
    Ok, es hat sich erledigt, nachdem ich in die Vorlage einen manuellen Seitenumbruch eingefügt habe funktionierte es wunderbar ,)

    Edit by Agent: Bitte keine 3-fach Posts, es gibt die Bearbeiten-Funktion

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agent“ ()