2012-10-24 277 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