找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: user_qzaye

如果在PPT演示过程中,拖动图片到自己想要的地方去?

22
回复
1197
查看
[复制链接]

16

主题

557

帖子

339

幻币

豪侠武师

Rank: 4

积分
905
QQ
2009-3-10 17:32:50 显示全部楼层
這是依個powerpoint玩家的網站
它裡面就有一個範例檔
裡面就有一個drag&drop的vba
不過不能開取
範例檔內有使用說明與操作方式
可以參考
PPT学习论坛
回复 支持 反对

使用道具 举报

14

主题

215

帖子

37

幻币

一流武者

Rank: 3Rank: 3

积分
267
QQ
2009-3-10 17:36:28 显示全部楼层
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时加入此句【指定到有拖动控件的那一页!SlideShowWindows(1).View.GotoSlide n任意页】
  End Sub
  这两段VBA代码并不复杂,稍有VB基础的读者一看便懂,这里就不详加解说了。需要指出的是,以上代码也可在PowerPoint 97/2000中正常执行。
调试执行
  Label1和Image1的VBA代码都输入完成并调试无误后,按F5放映幻灯片。怎么样,幻灯片中的图像和文字是不是可以随心所欲地拖动了?
  这个示例比较简单,但其原理可作为实现更复杂操控效果的基础。一个熟悉PowerPoint VBA的人,基于此示例设计出类似于空当接龙那样的扑克游戏亦并非难事。不信,你也动手试试?看看PPT到底还有多少功能尚未挖掘出来。
PPT学习论坛
回复 支持 反对

使用道具 举报

18

主题

265

帖子

100

幻币

一流武者

Rank: 3Rank: 3

积分
371
QQ
2009-3-10 17:50:43 显示全部楼层
高手,共享一下您的方法
PPT学习论坛
回复 支持 反对

使用道具 举报

123
您需要登录后才可以回帖 登录 | 立即注册