vc操作ppt,当ppt不在放映状态下时,获取当前页,一般情况下已经获取成功,代码如下
_Presentation ppt;//要获取状态的ppt文件
DocumentWindows documentwindows = ppt.GetWindows();
DocumentWindow document = documentwindows.Item(1);
View documentView = document.GetView();
_Slide slide = documentView.GetSlide();
这样就获取到了。
但是当鼠标点左侧的幻灯片栏,如果鼠标点到2张幻灯片中间,而不是直接点某张幻灯片,再执行上述代码的时候,在_Slide slide = documentView.GetSlide();出现错误,并且是致命错误,程序直接崩溃,程序被强行关闭。请问如何解决?
希望有相关经验的兄弟们不吝赐教!

解决方案 »

  1.   

    换个方式:
    ActiveWindow.Selection.SlideRange(1)Window对象下面是Selection,Selection下面是SlideRange集合。
    具体代码楼主根据提示就可以写出来吧。
      

  2.   

    还有一种方式:
    ActivePresentation.Slides(1)
      

  3.   

    To:oyljerry 
         try catch可以捕获错误,可以解决程序崩溃问题。可是这样是消极的避免,而不是去解决问题,这样的话,我还是拿不到我想要的silde。
    To:fengrx 
         DocumentWindow.GetSelection()返回的应该不是SlideRange,我按返回是SlideRange来做,当SlideRange.GetSlideIndex时出错,是我方法运用不正确还是为什么?SlideRange是个什么集合?和_slide什么关系?
          至于你说的ActivePresentation.Slides(1),不懂你什么意思。
      

  4.   

    我是按微软给的接口写的VBA代码,你把语法换下就可以吧。
      

  5.   

    貌似不行的样子,ActivePresentation.Slides(1)就算语法没问题,我是要得到当前slide,你这却是指定某一页silde给我,我一头雾水......