![]() |
Tipp 0242
|
Eingebettetes Excel-Diagramm bearbeiten
|
 |
|
Autor/Einsender: Datum: |
|
Angie 06.06.2002 |
|
Entwicklungsumgebung: |
|
Word 2000 |
|
|
In diesem Beispiel wird das im aktiven Dokument eingebettete Excel-Diagramm (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 ExcelDiagrammBearbeiten()
Const cBMName As String = "tmXLOleObject1"
Dim objWDDoc As Word.Document
Dim objIShape As Word.InlineShape
Dim objOLEXLWkb As Object
Dim objOLEXLWks As Object
Dim objOLEXLCht 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 - Excel-Diagramm bearbeiten"
Set objWDDoc = Nothing
Exit Sub
Else
If objIShape.OLEFormat.ClassType <> "Excel.Chart.8" Then
MsgBox "Es ist ein Fehler aufgetreten !!" & vbCrLf & _
"Das Element ist kein Excel-Diagramm !!", _
vbOKOnly + vbExclamation, _
Title:="Demo - Excel-Diagramm bearbeiten"
Set objIShape = Nothing
Set objWDDoc = Nothing
Exit Sub
End If
End If
On Error GoTo 0
End If
objIShape.OLEFormat.DoVerb wdOLEVerbHide
Set objOLEXLWkb = objIShape.OLEFormat.Object
Set objOLEXLCht = objOLEXLWkb.Charts(1)
With objOLEXLCht
.HasTitle = True
.ChartTitle.Text = "Demo - Excel-Chart-Objekt bearbeiten"
.ChartTitle.Font.Size = 12
.SeriesCollection(1).Interior.ColorIndex = 36
.SeriesCollection(2).Interior.ColorIndex = 34
.SeriesCollection(3).Interior.ColorIndex = 38
End With
Set objOLEXLWks = objOLEXLWkb.Worksheets(1)
With objOLEXLWks
For nRow = 2 To objOLEXLWks.UsedRange.Rows.Count
For nCol = 2 To objOLEXLWks.UsedRange.Columns.Count
.Cells(nRow, nCol).Value = Int((100 * Rnd) + 1)
Next nCol
Next nRow
End With
objOLEXLWkb.Close True
Set objOLEXLCht = Nothing
Set objOLEXLWks = Nothing
Set objOLEXLWkb = Nothing
Set objIShape = Nothing
Set objWDDoc = Nothing
End Sub
|
|
|
|
Um dieses Beispiel ausführen zu können, muss kein Verweis auf die Microsoft Excel Objektbibliothek
Microsoft Excel 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.
|
|
|
|
Windows-Version |
95 |
 |
|
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
Word-Version |
95 |
 |
|
97 |
 |
|
2000 |
 |
|
2002
(XP) |
 |
|
2003 |
 |
|
2007 |
 |
|
2010 |
 |
|
|
|
Download (19,5 kB)
|
Downloads bisher: [ 1138 ]
|
|
|