Word und Excel Interop - kopiertes Excel Diagramm in Word einbetten

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von moffgat.

    Word und Excel Interop - kopiertes Excel Diagramm in Word einbetten

    Hallo Forum,

    in meinem Code versuche ich ein Excel-Diagramm mittels vb.net per Copy Paste in Word einzufügen. Das ist soweit kein Problem. Ich möchte allerdings das Diagramm in Word mitsamt der Daten einbetten und nicht mit der Excel Datei verlinken und daran scheitere ich. Wenn ich das ganze in Word manuell mache, kann ich auswählen ob das Diagramm verlinkt oder eingebettet werden soll. Per vb.net geht das reinkopieren über ​appwd.Selection.PasteAndFormat(Microsoft.Office.Interop.Word.WdRecoveryType."Typ"). Als Typ hat man drei zur Auswahl im Namespace. wdChartLinked, wdChartPicture und wdChart. Ersteres verlinkt mit der Excel-Datei, zweites fügt als Bild ein und letzteres sollte laut Beschreibung eigentlich das Diagramm einbetten. Nur leider geht genau letzteres nicht und bricht mit einer Fehlermeldung ab ​System.Runtime.InteropServices.COMException: "Dieser Befehl ist nicht verfügbar.". Hat jemand eine Idee für mich?

    Danke und viele Grüße

    Frank
    Vielleicht nicht schön, aber ggf. ausreichend. Hab was bei stackoverflow gefunden: Statt PasteAndFormat PasteSpecial verwenden:

    VB.NET-Quellcode

    1. Excel.ActiveChart.ChartArea.Copy()
    2. Word.Selection.PasteSpecial(Link:=False, DataType:=Microsoft.Office.Interop.Word.WdPasteDataType.wdPasteOLEObject, Placement:=Microsoft.Office.Interop.Word.WdOLEPlacement.wdInLine, DisplayAsIcon:=False)


    Dann lässt sich das Diagramm in Word auch nach Löschen der Quell-Excel-Datei bearbeiten und auch in ein Excel-Sheet konvertieren. Aber für die Befehle ist es mir momentan zu spät.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.