Some notes based on the fact that the chart is an embedded Excel object, as described above.
''http://msdn.microsoft.com/en-us/library/aa213725(office.11).aspx ''http://msdn.microsoft.com/en-us/library/aa174298(office.11).aspx Dim wd ''As Word.Applicatio Dim shs ''As InlineShapes Dim objChart ''As Excel.Chart Dim objSheet ''As Excel.Worksheet Dim objOLE ''As Excel.Workbook Dim NewSrs ''As Series Set wd=CreateObject("Word.Application") wd.Documents.Open "C:\Docs\Doc1.docm" wd.Visible=True Set shs = wd.ActiveDocument.InlineShapes ''Just the one shape in this example shs(1).OLEFormat.Activate ''The OLE Object contained Set objOLE = shs(1).OLEFormat.Object ''The chart and worksheet Set objChart = objOLE.Charts("chart1") Set objSheet = objOLE.Worksheets("sheet1") objSheet.Range("e1") = "NewData" objSheet.Range("e2") = 11 objSheet.Range("e3") = 12 Set NewSrs = objChart.SeriesCollection.NewSeries With NewSrs .Name = "=Sheet1!e1" .Values = "=Sheet1!e2:e3" End With
Notes for MS Graph
''VBA: Reference: Microsoft Graph xx Object Library ''Graph Object Model: http://msdn.microsoft.com/en-us/library/aa198537(office.10).aspx Dim shs ''As InlineShapes Dim objDS ''As Graph.DataSheet Dim objOLE ''As Graph.Chart Set shs = ActiveDocument.InlineShapes ''The OLE Object contained shs(3).OLEFormat.Activate Set objOLE = shs(3).OLEFormat.Object Set objDS = objOLE.Application.DataSheet ''00=Corners, Row titles = 01,02 ... ''Column titles = A0, B0 ... ''Cells = A1, B1 ... E9 ... objDS.Range("E0") = "New" objDS.Range("E1") = 11 objDS.Range("E2") = 12 objDS.Range("E3") = 9 Set objDS = Nothing Set objOLE = Nothing Set shs = Nothing
source share