これが可能な回避策です。
Sub ChartExample()
Dim s As Shape
Set s = Application.Presentations(1).Slides(1).Shapes.AddOLEObject(ClassName:="Excel.Chart")
End Sub
次に、 を介して追加したグラフを操作しますs.OLEFormat.Object
。少しだけ試してみましたが、外部の Excel アプリケーションは開かず、オブジェクトをアクティブにしない限り極端なちらつきは見られませんでした。ただし、少なくとも Powerpoint 2010 では、すべての機能を使用するには変換する必要があります。これが機能しない場合は、いつでもWeb コンポーネントを試すことができます。
編集: このメソッドが問題を引き起こす理由はわかりませんが、ここでさらに支援するために、実際にオブジェクトを操作することを示すコードをもう少し示します。これはワークブックなどではなくオブジェクトで記述されているため、参照を行う必要はありません。ユーザーが自分のマシンにExcelを持っていることを要求するだけです。
Option Explicit
Const xlcolumns = 2
Sub ChartExample()
Dim s As Shape
Dim wb As Object, chart As Object, data As Object
Set s = Application.Presentations(1).Slides(1).Shapes.AddOLEObject(ClassName:="Excel.Chart")
Set wb = s.OLEFormat.Object
Set chart = wb.Sheets(1)
Set data = wb.Sheets(2)
'Set the range for the chart data
chart.setsourcedata Source:=data.Range("A1:C7"), PlotBy:= _
xlcolumns
'Update data values for the chart
data.Range("B1").Value = "Column Label 1"
data.Range("C1").Value = "Column Label 2"
data.Range("A2:C7").clearcontents
data.Range("A2").Value = "Row Label"
data.Range("B2").Value = 7
data.Range("C2").Value = 11
End Sub