Tipp 0240 Eingebettetes MS-Graph-Objekt bearbeiten
Autor/Einsender:
Datum:
  Angie
27.05.2002
Entwicklungsumgebung:   Word 2000
In diesem Beispiel wird das im aktiven Dokument eingebettete MS-Graph-Objekt (OLEObject) bearbeitet.
Soll ein InlineShape-Objekt nachträglich per VBA bearbeitet werden, kann dieses normalerweise nur über den Index angesprochen werden, da man dem InlineShape-Objekt keinen Namen vergeben kann. Um eine eindeutige Identifizierung zu gewährleisten, wurde hier dem bestehenden InlineShape-Objekt ein Textmarkenname zugewiesen.
 
Public Sub MSGraphObjectBearbeiten()
  Const cBMName As String = "tmGraph1"

  Dim objWDDoc      As Word.Document
  Dim objIShape     As Word.InlineShape

  Dim objOLEChart   As Object
  Dim objOLEDataSht As Object

  Dim nRow  As Long
  Dim nCol  As Integer

  Set objWDDoc = ActiveDocument
  If objWDDoc.Bookmarks.Exists(cBMName) Then
    On Error Resume Next
    Set objIShape = _
          objWDDoc.Bookmarks(cBMName).Range.InlineShapes(1)

    If Err.Number <> 0 Then
      MsgBox "Es ist ein Fehler aufgetreten !!" & vbCrLf & _
             Err.Description, vbOKOnly + vbExclamation, _
             Title:="Demo - MS-Graph-Objekt bearbeiten"

      Set objWDDoc = Nothing
      Exit Sub

    Else
      If objIShape.OLEFormat.ClassType <> "MSGraph.Chart.8" Then
        MsgBox "Es ist ein Fehler aufgetreten !!" & vbCrLf & _
               "Das Element ist kein MS-Graph-Objekt !!", _
               vbOKOnly + vbExclamation, _
               Title:="Demo - MS-Graph-Objekt bearbeiten"

        Set objIShape = Nothing
        Set objWDDoc = Nothing
        Exit Sub
      End If
    End If
    On Error GoTo 0
  End If

  objIShape.OLEFormat.DoVerb wdOLEVerbHide

  Set objOLEChart = objIShape.OLEFormat.Object
  With objOLEChart
    .HasTitle = True
    .ChartTitle.Text = "Demo - MS-Graph-Objekt bearbeiten"
    .ChartTitle.Font.Size = 12
  End With

  Set objOLEDataSht = objOLEChart.Application.DataSheet
  With objOLEDataSht
    For nRow = 2 To 4
      For nCol = 2 To 5
        .Cells(nRow, nCol).Value = Int((100 * Rnd) + 1)
      Next nCol
    Next nRow
  End With

  With objOLEChart.Application
    .Update
    .Quit
  End With

  Set objOLEDataSht = Nothing
  Set objOLEChart = Nothing
  Set objIShape = Nothing
  Set objWDDoc = Nothing
End Sub
 
Hinweis
Um dieses Beispiel ausführen zu können, muss kein Verweis auf die Microsoft Graph Objektbibliothek Microsoft Graph x.0 Object Library in das VBA-Projekt eingebunden werden.
Um jedoch während der Entwicklungsphase die Vorteile von Early Binding nutzen zu können, können Sie einen Verweis auf die Objektbibliothek einbinden, und vor der Verteilung des Programms den Verweis entfernen. Im Tipp Automation mit Office-Anwendungen wird der Unterschied zwischen Early und Late Binding anhand eines Beispiels zur Automatisierung von Word beschrieben.
Weitere Links zum Thema
Diagramm – MS-Graph-Objekt in Dokument einfügen
Diagramm – Eingebettetes Excel-Diagramm bearbeiten

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
Word-Version
95
97
2000
2002 (XP)
2003
2007
2010


Download  (20,5 kB) Downloads bisher: [ 962 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 25. Juli 2011