gpt4 book ai didi

vba - 当 SelectionType = ppSelectionNone 时,如何获取 Powerpoint 中可见幻灯片的 SlideIndex

转载 作者:行者123 更新时间:2023-12-04 15:23:58 27 4
gpt4 key购买 nike

我有一些代码需要我知道 SlideIndex进行操作(例如,插入新幻灯片的位置、插入 ChartObject 的位置等)。大约 99% 的时间,我可以成功获得 SlideIndex经过:

Dim w as Long 'slide index variable
w = ActivePresentation.Windows(1).Selection.SlideRange(1).SlideIndex

其他 0.1% 的时间,当 ActivePresentation.Windows(1).SelectionType = ppSelectionNone ,它将失败,因为(可以理解)它无法获得 SlideIndex的选择,因为没有选择。如果用户无意中“选择”了大纲 Pane 中两张幻灯片之间的空间,则可能会发生这种情况。

理想情况下,我想做的是获得 SlideIndex在“幻灯片” Pane 中可见的幻灯片的属性:

enter image description here
我目前有一些代码可以测试 SelectionTypeppSelectionNone ,所以我可以捕获条件,我只是还没有找到一种方法来识别幻灯片 Pane 的 slideIndex。
Function GetMySlide()
Dim w as Long
If Not ActivePresentation.Windows(1).Selection.Type = ppSelectionNone Then

w = ActivePresentation.Windows(1).Selection.SlideRange(1).SlideIndex
Set GetMySlide = ActivePresentation.Slides(w)

Else:

MsgBox "No slide is currently selected. Please select a slide in the Outline pane in order to proceed.", vbInformation
Set GetMySlide = Nothing
Exit Function
End If
End Function

更新

我的临时解决方案是使用公共(public)变量 lastUsedSlide试图跟踪最近选择的幻灯片。我可以将它与 WindowSelectionChange 合并事件,但希望有一个更直接的解决方案。如果我认为这种方法总是有效,我会使用它,但是,它可能会引入无法预料的错误,因为 lastUsedSlide不是 what_slide_i_am_currently_looking_at 的可靠代理.

最佳答案

潜在的解决方法,在这里:

http://eileenslounge.com/viewtopic.php?f=30&t=1667

If ActiveWindow.Selection.Type = ppSelectionNone Then
Select Case ActiveWindow.ViewType
Case ppViewNormal
ActiveWindow.ViewType = ppViewSlide
ActiveWindow.ViewType = ppViewNormal
Case ppViewSlideSorter
ActiveWindow.ViewType = ppViewSlide
ActiveWindow.ViewType = ppViewSlideSorter
Case Else
' ?
End Select
End If
' A slide should be selected now

从美学上讲,我并不特别在意它,但它似乎有点用。唯一的事情是,如果选择在幻灯片之间,这会强制选择这两张幻灯片中的第一张,而我认为第二张会更直观。我可以修改我的代码来解决这个问题,但这仍然不理想。

关于vba - 当 SelectionType = ppSelectionNone 时,如何获取 Powerpoint 中可见幻灯片的 SlideIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16652269/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com