gpt4 book ai didi

vba - PowerPoint - 确定光标是在第一张幻灯片之前还是之后

转载 作者:行者123 更新时间:2023-12-02 02:22:05 24 4
gpt4 key购买 nike

我需要确定 PowerPoint 幻灯片 Pane 中的光标位置,以便在正确位置插入新幻灯片。

选择幻灯片时,当前幻灯片编号为 Application.ActiveWindow.View.Slide.SlideIndex。
当光标在幻灯片之间时,切换到另一个 View 然后返回(例如,切换到幻灯片 View 然后返回幻灯片浏览器)会选择光标之前的幻灯片,然后上述方法起作用。

问题是在一种情况下:当光标位于第一张幻灯片之前或之后。来回切换 View ,在两种情况下都将光标定位在第一张幻灯片上。

如何确定滑动 Pane 中的光标位置是在第一张幻灯片之前还是之后?

最佳答案

好问题。

一种丑陋的方法是使用 SendKeys 发出向下箭头键。如果光标位于第一张幻灯片上方,则会导致选择第一张幻灯片。如果光标位于第一张和第二张幻灯片之间,则将选择第二张幻灯片。

使用 .Execute 方法触发插入新幻灯片的正确控件会稍微不那么难看,这应该模仿用户在做同样的事情时得到的结果;如果插入的幻灯片的索引为 1,则光标位于原始第一张幻灯片的上方。如果插入的幻灯片的索引为 2,则光标最初位于幻灯片 1 和 2 之间。

或者使用 SendKeys ("^M") 来完成同样的事情(在 IDE 中不起作用,但在 PPT 中你可以 Alt+F8 并选择宏来运行它。)

例如:如果光标在第一张幻灯片上方,则显示 1,如果光标在幻灯片 1 和 2 之间,则显示 2。DoEvnts 是必需的;否则 PPT 在下一行运行之前还没有创建幻灯片,并且会出错。

Sub thing()
Dim lTemp As Long
SendKeys ("^M")
DoEvents
lTemp = ActiveWindow.Selection.SlideRange(1).SlideIndex
ActiveWindow.Selection.SlideRange.Delete
MsgBox lTemp
End Sub

我怀疑您想要添加一些安全检查,以确保不会错误地删除现有幻灯片而不是您刚刚插入的幻灯片。

关于vba - PowerPoint - 确定光标是在第一张幻灯片之前还是之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7660448/

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