2012-10-24 275 views
1

我有2個問題。幻燈片中的幻燈片?

1. 我有與Frameowrk 3.5 VS2010和需要提升一些數據和文本和更新一些現有的Powerpoint文件。最好的方法是什麼?我是VSTO的新手,但一直在使用C#。

2. 我已經與互操作庫(Microsoft.Office.Interop.PowerPoint)測試 所以我需要打開一個PowerPoint和更改所有幻燈片和圖表一些文字。幻燈片和sahapes沒有問題,但圖表似乎是一個問題。如果(shape.Type == Office.MsoShapeType.msoChart) 返回false,則似乎不存在圖表集合和 。

我在VBA之前這樣做,使用下面

For Each chtChart In sht.ChartObjects 
     chtChart.Chart.ChartTitle.Characters.Text = Replace (chtChart.Chart.ChartTitle.Characters.Text, "{month}", strCurrent, VbCompareMethod.vbTextCompare) 
Next chtChart 

代碼我真的想這樣做。

我是否錯過了一些非常明顯的東西?

任何指針感激地收到。

Steve

回答

1

有幾種類型的圖表可能會在PPT中運行。忽略舊的MSGraph圖表,您可能會發現用戶使用Insert |添加的圖表圖表。

這些將是.Type = 3(msoChart)的形狀。以下是您如何獲取圖表和/或圖表數據的示例:

Sub ShowChartData() 

Dim oSh As Shape 
Dim oCht As Chart 
Dim oData As ChartData 

Dim x As Long 
Dim y As Long 
Dim sTemp As String 

Set oSh = ActiveWindow.Selection.ShapeRange(1) 

Set oCht = oSh.Chart 
oCht.ChartData.Activate 
Set oData = oCht.ChartData 

For x = 1 To 4 
    For y = 1 To 4 
     sTemp = sTemp & oData.Workbook.Worksheets("Sheet1").Cells(x, y) & vbTab 
    Next ' y/cell 
    Debug.Print sTemp 
    sTemp = "" 
Next ' x/row 

' do this to get rid of visible worksheet 
oData.Workbook.Close 

Set oData = Nothing 
Set oCht = Nothing 

End Sub 

圖表也可能是從Excel複製/粘貼的鏈接或嵌入對象。

+0

謝謝史蒂夫 - 有用的信息 - 我已經找到了Powerpoint中圖表標題的正確屬性。它是shape.Chart.ChartTitle.Text – bhs