在PowerPoint中以编程方式添加自定义Smartart形状时出错

时间:2014-11-19 10:09:10

标签: vsto office-interop powerpoint-vba office-addins

我创建了3个smartart形状,并将它们放入文件夹:“C:\ Users ... \ AppData \ Roaming \ Microsoft \ Templates \ SmartArt Graphics”,然后PowerPoint成功加载它们。您可以从UI调用它们,但是如果在打开PowerPoint时开始,并且我以编程方式将Smartart形状添加到幻灯片中,我总是会收到以下错误:

“指定集合的​​索引超出范围”

但是,如果我首先从UI添加我的smartart形状,如果我想在此之后从代码中添加我的smartart形状,则没有错误。

我的smartart形状: smartart resources

我的代码是:

Microsoft.Office.Core.SmartArtLayout myLayout = null;
try 
{
       myLayout = PowerPointApp.SmartArtLayouts["SmartArtABS3"];
}
catch (Exception ex)
{
        MessageBox.Show(ex.Message);
        questionLayout = null;
}                

if (questionLayout != null)
{
        PowerPoint.Shape smShape = allShapes.AddSmartArt(myLayout, left, top, width, height);

//.....

}

注意:我使用的是VS Ultimate 2013,PowerPoint 2013,C#,Add-In-Express

1 个答案:

答案 0 :(得分:0)

非常确定您不能使用名称作为索引,您必须使用索引(长)

如果您不知道它会循环显示名称,直到找到匹配项找到它。