Application.ActiveWindow.Selection.ShapeRange在未选择任何内容时引发异常

时间:2019-02-02 13:02:02

标签: c# vsto powerpoint

我试图在没有try / catch的情况下处理异常,以获取选定的形状,下面的代码抛出异常!=null在这里不起作用,任何想法

PowerPoint.Selection selection = Application.ActiveWindow.Selection;
PowerPoint.ShapeRange shapeRange = selection?.ShapeRange; // Throw Ex 
if (shapeRange != null)
{
    // do some code
}

异常消息:

  

选择(未知成员):无效的请求。没有适当的   当前选择。

1 个答案:

答案 0 :(得分:1)

Microsoft对PowerPoint保持沉默,但对于Excel则保持沉默:“返回的对象类型取决于当前选择(例如,如果选择了一个单元格,则此属性返回Range对象。)如果未选择任何内容,则Selection属性将返回Nothing。 。”

https://docs.microsoft.com/en-us/office/vba/api/excel.application.selection

我希望PowerPoint也是如此。

我使用VB而不是使用c#的PowerPoint做更多的Excel,但是我想您可以尝试以下方式:

if (selection.GetType == null)

希望这为您提供了进一步调查的轨道