LabVIEWForum.de - Diagramm aus Excel in Word einfügen (ActiveX)

LabVIEWForum.de

Normale Version: Diagramm aus Excel in Word einfügen (ActiveX)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich versuche gerade einen Weg zu finden, um ein Diagramm aus Excel (z.B. im Reiter Diagramm1), an eine Textmarke in einem Worddokument (am liebsten als jpg oder bmp) einzufügen.

Bisher habe ich leider keinen Ansatz wie ich an das Diagramm herankomme, bzw. auf welche Weise ich es "kopieren" kann, um es schließlich in Word einzufügen.

Hat jemand schon mal etwas ähnliches versucht und kann Hilfestellung geben?

Viele Grüße,

Arachnoid
Offtopic2
Hört sich umständlich an, mit einer nicht-MS-Office-Software das Kopieren eines Elements von der einer zur anderen Software durchführen zu wollen... Hmm
Direkt das Excel Diagramm in Word einbinden geht doch sicher einfacher?!

--

Ansonsten ist der Standard-Tipp: Makro in Excel von dem gewünschten Vorgang aufzeichnen und das dann in ActiveX nachprogrammieren.

Gruß, Jens
Hallo Jens,

ich hatte es mit dem Makro-Rekorder versucht, aber es scheint, dass ein wechsel von Excel zu Word (Kopiervorgang) nicht mit aufgezeichnet wird. Meine Idee war es Daten in Excel zu kopieren, wobei der Graph mit diesen Daten direkt in Excel erzeugt wird. Ähnlich wie bei der Verwendung von Word-Formatvorlagen, kann ich so den Graphen (schon vorher) optisch ansprechend gestalten, was mit ActiveX recht schwierig erscheint.

Vielleicht gibt es noch einfachere Wege?

Viele Grüße,

Arachnoid
Ich hab schon mal eine PowerPoint Präsentation automatisch mit 100+ Diagrammen dynamisch aus Excel gefüllt... Aber ich würd im Traum nicht dran denken, das über LV zu steuern.

In Excel musst man sich ein PowerPoint (oder eben Word) Objekt erzeugen, das dann referenziert werden kann.
Und dann die Diagramme hinüber schubsen. Ob das auf eine neues Slide geht oder an eine Textmarke spielt keine Rolle.. nur der Code muss entsprechend an die Bedürfnisse angepasst sein...

Hier mal ein Auszug von meinem.. vielleicht zeigt dir das die ungefähre Richtung.

Code:
Public Sub MakePPtReport()
Application.ScreenUpdating = False

Dim pptApp As PowerPoint.Application
Dim pptPres As PowerPoint.Presentation

Set pptApp = CreateObject("PowerPoint.Application")
Set pptPres = pptApp.Presentations.Add(msoTrue) ' create a new presentation

On Error Resume Next
pptPres.ApplyTemplate FileName:=ThisWorkbook.Path & "\Template_PPT.ppt"
On Error GoTo 0
pptApp.Visible = True ' display the application

Set c1 = ThisWorkbook.Charts("D1")

Call PasteChart2PP(pptPres, c1)

pptPres.Application.ActivePresentation.SlideShowSettings.Run

Application.ScreenUpdating = True

Set pptApp = Nothing
Set pptPres = Nothing
Set c1 = Nothing
End Sub

Public Sub PasteChart2PP(pptPres As PowerPoint.Presentation, xlChart As Chart)
Dim pptSlide As PowerPoint.Slide
Dim pptShape As PowerPoint.Shape

xlChart.ChartArea.Copy

With pptPres.Slides
    Set pptSlide = .Add(.Count + 1, ppLayoutBlank) ' add a slide
End With
With pptSlide
    '.Shapes(1).TextFrame.TextRange.Text = sTitle 'edit to put a generic title on each slide or
    ' take this line out if you dont want a generic slide title to appear on each slide
    .Shapes.PasteSpecial ppPasteEnhancedMetafile
    With .Shapes(.Shapes.Count) ' sizes the graph on the slide
        .Left = 0
        .Top = 40
   '    .Width = 550
   '    .Height = 390
    End With
End With

Application.CutCopyMode = False ' end cut/copy from Excel
Set pptSlide = Nothing

End Sub


Viel Erfolg!
Seba
Referenz-URLs