vba - 如何检查是否在 PowerPoint 幻灯片上选择了任何形状?
问题描述
现在的情况:
我有一张幻灯片,上面有几个形状,我希望 vba 代码的行为不同,具体取决于用户是否在幻灯片上选择了任何形状(所以根本没有形状)
我试图通过
Sub DETERMINE_IF_ANY_SHAPE_IS_SELECTED ()
Debug.print ActiveWindow.Selection.ShapeRange.Count
End Sub
但这会引发错误,因为选择“无”进行计数。我没有像我希望的那样取回值 0。
您可以在哪里提供帮助:
有没有办法确定是否选择了任何(!)形状?或者我可以通过错误处理来解决这个问题吗?
解决方案
检查选择类型:
Sub test()
If ActiveWindow.Selection.Type = ppSelectionShapes Then
Debug.Print ActiveWindow.Selection.ShapeRange.Count & " shapes selected"
Else
Debug.Print "no shapes are selected"
End If
End Sub
如果是ppSelectionNone
( 0
),则不选择任何内容。
因此,您还可以检查:
If ActiveWindow.Selection.Type = ppSelectionNone Then
很少需要错误处理。
https://docs.microsoft.com/en-us/office/vba/api/powerpoint.selection
要处理所有这些:
Select Case ActiveWindow.Selection.Type
Case ppSelectionNone
' what to do when nothing is selected
Case ppSelectionShapes
' what to do when shapes are selected
Case ppSelectionSlides
' what to do when slides are selected
Case ppSelectionText
' what to do when text is selected
End Select
推荐阅读
- csv - Tableau 未导出 CSV 中的所有行
- vba - 查找间接依赖于 activecell (VBA) 的单元格
- express - express.js 中的后端服务出错
- javascript - classList.toggle 仅部分有效
- java - 我可以使用多个线程在一个面板上同时使用 Java Graphics2D 绘图吗?
- python - 使用 Python SciKit 进行随机森林回归 在具有多个通道的时间序列列表中学习
- javascript - 将会话存储值更改为未定义应该会影响 ngIf 而无需单击两次
- jquery - 将 Prev 和 Next 按钮调整到表格的角落
- javascript - 使用 Leaflet.TimeDimension 插件时如何在可点击的弹出窗口中显示 GPX 轨道名称(和/或描述)
- angular - rxjs Observable 导入问题