Đây là công việc có thể xảy ra xung quanh.
Sub ChartExample()
Dim s As Shape
Set s = Application.Presentations(1).Slides(1).Shapes.AddOLEObject(ClassName:="Excel.Chart")
End Sub
Sau đó, bạn sẽ điều khiển biểu đồ mà bạn đã thêm qua s.OLEFormat.Object
. Tôi chỉ thử nghiệm một chút, nhưng nó không mở một ứng dụng Excel bên ngoài và tôi không thấy bất kỳ nhấp nháy cực nào trừ khi tôi kích hoạt đối tượng. Một thương mại là ít nhất trong Powerpoint 2010, bạn cần phải chuyển đổi nó để sử dụng tất cả các tính năng. Nếu cách này không hiệu quả, bạn luôn có thể thử web components.
Chỉnh sửa: Tôi không hiểu tại sao phương pháp này gây ra sự cố, nhưng cố gắng hỗ trợ thêm ở đây là một ít mã hơn cho thấy thực sự thao tác đối tượng. Điều này đã được viết với các đối tượng thay vì workbook vv, do đó không có tài liệu tham khảo cần phải được thực hiện. Nó chỉ yêu cầu người dùng có Excel trên máy của họ.
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
Nguồn
2012-07-17 14:20:42
Tôi chưa thử nghiệm điều này, nhưng điều này khác với Slide.AddChart như thế nào? Điều này không tự động mở sổ làm việc Excel? – simendsjo
@simendsjo Code cũng có dữ liệu cần thiết để tạo biểu đồ. Vì vậy, nó có thể không bật lên excel. Tôi không thể thử mã trên vì tôi hiếm khi sử dụng các cửa sổ. – 465544
Đó là chính xác những gì tôi đang làm (Shapes.AddChart), do đó, nó sẽ mở excel ngay cả khi được gọi từ mã – simendsjo