2017-01-28 3 views
1

Dieser Code läuft von Outlook und automatisiert Word.Bild in Word Doc einfügen, aus Outlook

Ich möchte eine Bildanlage aus einer Outlook-Mail in ein neues Word-Dokument einfügen. Ich speichere den Anhang und verwende den Bilddateipfad im Code wie unten.

Der Code erstellt erfolgreich ein neues Word-Dokument, aber das Bild wird nicht eingefügt, wenn ich das ActiveDocument-Objekt verwenden - keine Fehler, funktioniert einfach nicht.

Wenn ich ein neues Objekt (objActiveDoc) zu ersetzen ActiveDocument erstellen - um es explizit für Word zu machen, erhalte ich einen Fehler "Requested Object ist nicht verfügbar".

Ich getestet in Word allein (ohne Outlook Beteiligung) und kann ein Bild mit ActiveDocument erfolgreich einfügen.

Dim objWord As Word.Application 
Dim objDoc As Document 
Dim objActiveDoc As Document 
Dim ImagePath As String 

Set objWord = CreateObject("Word.Application") 

Set objDoc = objWord.Documents.Add 'Create a new word Doc 

Set objActiveDoc = objWord.ActiveDocument 'Do this as working from Outlook, not Word 

ImagePath = "P:\OutlookImage\Image1.jpg" 

    'With ActiveDocument '<------------ Does not work, no error 
    With objActiveDoc '<------------- ERROR Requested Object Not Available   
     .Shapes.AddPicture FileName:=ImagePath, _ 
     LinkToFile:=False, _ 
     SaveWithDocument:=True, _ 
     Left:=-5, _ 
     Top:=5, _ 
     Anchor:=Selection.Range, _ 
     Width:=111, _ 
     Height:=111 
    End With 

Wie bekomme ich das Bild in das Word-Dokument eingefügt?

Antwort

1

Da Sie ObjDoc auf das neue Dokument festgelegt haben, das Sie erstellt haben, um das Bild zu halten, warum ignorieren Sie es dann und verwenden ActiveDocument?

Befreien Sie sich von objActiveDoc und arbeiten Sie einfach mit objDoc und Ihr Code wird genau so funktionieren, wie Sie es wollen, vorausgesetzt Ihre Bilder sind immer quadratisch.

Wenn die Bilder, die Sie hinzufügen möchten, möglicherweise nicht quadratisch sind, sollten Sie die Höhe und Breite nicht ändern, da Sie sonst das Bild verzerren können.

+0

Sie haben Recht, objDoc funktioniert. Ich hatte das schon vorher probiert, aber gerade jetzt entdeckt, dass ich die 'objWord.Visible' -Eigenschaft zu früh im Code gesetzt habe (nicht in meinem Beispiel, tut mir leid dafür), also hat es nicht funktioniert. –

Verwandte Themen