PPT鼠标悬停交互VBA示例


PPT鼠标悬停交互VBA示例

有时我们需要在PPT实现一些简单的交互:比如鼠标悬停在某个对象上 , 该对象进行放大,鼠标移开后对象恢复原尺寸 。这种交互一般使用VBA实现 。接下来,我用一个简单的缩放交互示例进行演示 。

开始操作

1.1 新建或打开PowerPoint演示文稿
PPT鼠标悬停交互VBA示例

新建或打开PowerPoint演示文稿
1.2 调出开发工具选项卡
PPT鼠标悬停交互VBA示例

PPT → 文件 → 选项 → 自定义功能区 → 勾选开发工具 → 确定
1.3 另存为pptm
PPT鼠标悬停交互VBA示例

按Ctrl Shift S快捷键 → 保存类型:启用宏的PowerPoint演示文稿 → 确定
2.1 查看代码
PPT鼠标悬停交互VBA示例

开发工具选项卡 → 查看代码
2.2 插入模块
PPT鼠标悬停交互VBA示例

选中VBAProject右键 → 插入 → 模块
2.3 复制如下代码
Private oldshp As Shape?Sub ZoomShape(ByVal shp As Shape)Dim mw As SingleDim mh As SingleIf oldshp Is Nothing Thenmw = shp.Leftshp.Width / 2mh = shp.Topshp.Height / 2shp.Width = shp.Width * 1.2shp.Height = shp.Height * 1.2shp.Left = mw - shp.Width / 2shp.Top = mh - shp.Height / 2Set oldshp = shpEnd IfEnd Sub?Sub Restore()Dim mw As SingleDim mh As SingleIf Not oldshp Is Nothing Thenmw = oldshp.Leftoldshp.Width / 2mh = oldshp.Topoldshp.Height / 2oldshp.Width = oldshp.Width / 1.2oldshp.Height = oldshp.Height / 1.2oldshp.Left = mw - oldshp.Width / 2oldshp.Top = mh - oldshp.Height / 2Set oldshp = NothingEnd IfEnd Sub
2.4 粘贴代码后关闭窗口
PPT鼠标悬停交互VBA示例

粘贴代码
3.1 图形添加动作
PPT鼠标悬停交互VBA示例

选中图形 → 插入选项卡 → 动作 → 鼠标悬停 → 运行宏:ZoomShape → 确定
3.2 插入全屏矩形
PPT鼠标悬停交互VBA示例

插入一个矩形 → 手动调整尺寸与幻灯片一致 → 透明度:100% → 将全屏矩形置于底层3.3 全屏
3.3 全屏矩形添加动作
PPT鼠标悬停交互VBA示例

选中全屏矩形 → 插入选项卡 → 动作 → 鼠标悬停 → 运行宏:Restore → 确定
3.4 按Shift F5放映该页幻灯片即可查看效果
PPT鼠标悬停交互VBA示例

鼠标移到方块上,方块的尺寸变为1.2倍 。鼠标移开,方块恢复为原尺寸

最后

本示例实现的是对象从中心进行缩放的交互 。代码框架如下:
Private oldshp As Shape?Sub ZoomShape(ByVal shp As Shape)If oldshp Is Nothing Then'在此输入对象状态改变代码Set oldshp = shpEnd IfEnd Sub?Sub Restore()If Not oldshp Is Nothing Then'在此输入对象状态恢复代码Set oldshp = NothingEnd IfEnd Sub
【PPT鼠标悬停交互VBA示例】在此代码框架下,有VBA基础的朋友也可以尝试去实现图形的透明度、文字加粗、图形显隐性等效果的交互 。

相关经验推荐