郑州永威南樾最新价格:用VBA实现图像文字随意拖

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 20:30:34
用VBA实现图像文字随意拖 PPT内置了VBA编辑器,利用它可以扩展PPT的功能。由于VBA代码特别是用VBA编制的宏病毒代码会对PPT的安全性构成威胁,因此在高安全等级下PPT将拒绝执行VBA。
在确保VBA代码来源合法和运行无害的前提下,需要降低PPT的安全等级以使VBA代码得以执行。选择"工具→宏→安全性"菜单,将安全级别设为"低",同时将"可靠发行商"页下的"信任对于Visual Basic项目的访问"项勾选。
创建PPT
1.在PPT中新建空幻灯片。
2.选择"视图→工具栏→控件工具箱"菜单,打开控件工具箱。
3.点击控件工具栏的"标签"控件,在空幻灯片中拖出标签对象Label1。然后点击控件工具栏的"属性"按钮,打开属性栏,设置Label1的Caption、Font、ForeColor、BackStyle等属性。
4.点击"图像"控件,在幻灯片中添加图像对象Image1。在Image1的属性栏中,设置它的AutoSize、Picture属性,加入图片文件并让图像对象适应图片的大小。
添加代码
双击Label,或选择"工具→宏→Visual basic编辑器"菜单,打开VBA,选择Label1对象,再选择对应的MouseDown、MouseMove和MouseUp事件,加入以下代码:
Dim X1, X2, X3, X4, X5, X6 As Integer, Y1, Y2, Y3, Y4, Y5, Y6 As Integer, Down As Boolean '设置全局变量,X1、Y1等为Label1等对象的初始坐标值
Private Sub Label1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer
, ByVal X As Single, ByVal Y As Single)
If Not Down Then
X1=X
Y1=Y
Down=True
End If
End Sub
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'如果鼠标已按下,设置Label1新的坐标值
If Down Then
Label1.Left=Label1.Left+X-X1
Label1.Top=Label1.Top+Y-Y1
X1=X
Y1=Y
End If
End Sub
Private Sub Label1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Down=False
SlideShowWindows(1).View.First'刷新屏幕,使用PowerPoint XP/2003时加入此句
End Sub
为Image1加入以下VBA代码:
Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Not Down Then
X4=X
Y4=Y
Down = True
End If
End Sub
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'如果鼠标已按下,设置Label1新的坐标值。
If
Down Then
Image1.Left=Image1.Left+X-X4
Image1.Top=Image1.Top+Y-Y4
X4=X
Y4=Y
End If
End Sub
Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Down=False
SlideShowWindows(1).View.First'刷新屏幕,使用PowerPoint XP/2003时加入此句
End Sub
这两段VBA代码并不复杂,稍有VB基础的读者一看便懂,这里就不详加解说了。需要指出的是,以上代码也可在PowerPoint 97/2000中正常执行。
调试执行
Label1和Image1的VBA代码都输入完成并调试无误后,按F5放映幻灯片。怎么样,幻灯片中的图像和文字是不是可以随心所欲地拖动了?
这个示例比较简单,但其原理可作为实现更复杂操控效果的基础。一个熟悉PowerPoint VBA的人,基于此示例设计出类似于空当接龙那样的扑克游戏亦并非难事。不信,你也动手试试?看看PPT到底还有多少功能尚未挖掘出来。