【PPT中也能实现图片的拖动功能】本文档内包括两种方法来实现现对PPT中如何实现:当播放PPT时,能够随意拖动图片到指定位置(补充:通过插入制作好的FLASH也可以实现这样的效果,后续有时间了会接着发布的,敬请期待)。、一、通过宏实现PPT中图片的拖动功能此处建议将宏的安全级别设置为低。1.打开你要设置图片拖动功能的PPT。2.点击菜单:“工具——宏——宏”,出现对话窗口。3.填写对话窗口中的“宏名”,宏名可以随意命名,比如:wantmove,再点“创建”,就进入代码模式。4.删去所看到的所有的代码,然后把下面的代码全拷贝进去。OptionExplicitDeclareFunctionGetKeyStateLibuser32(ByValnVirtKeyAsLong)AsIntegerPrivateDeclareFunctionWindowFromPointLibuser32(ByValxPointAsLong,ByValyPointAsLong)AsLongPrivateDeclareFunctionGetWindowRectLibuser32(ByValhwndAsLong,lpRectAsRECT)AsLongPrivateDeclareFunctionGetCursorPosLibuser32(lpPointAsPointAPI)AsLongPrivateDeclareFunctionSetCursorPosLibuser32(ByValxAsLong,ByValyAsLong)AsLongPublicDeclareFunctionMonitorFromPointLibuser32.dll(ByValxAsLong,ByValyAsLong,ByValdwFlagsAsLong)AsLongPrivateDeclareFunctionGetSystemMetricsLibuser32(ByValnIndexAsLong)AsLongPrivateConstSM_SCREENX=0PrivateConstSM_SCREENY=1PrivateConstsigProc=Drag&DropPublicConstVK_SHIFT=&H10PublicConstVK_CTRL=&H11PublicConstVK_ALT=&H12PrivateTypePointAPIxAsLongyAsLongEndTypePublicTypeRECTLeftAsLongTopAsLongRightAsLongBottomAsLongEndTypePublicmPointAsPointAPI,dPointAsPointAPIPublicActiveShapeAsShapeDimdragModeAsBooleanDimdxAsDouble,dyAsDoubleSubDragandDrop(shAsShape)dragMode=NotdragModeIfdragModeThenDragshEndSubPrivateSubDrag(shAsShape)DimiAsInteger,sxAsInteger,syAsIntegerDimmWndAsLong,WRAsRECTdx=GetSystemMetrics(SM_SCREENX):dPoint.x=dxdy=GetSystemMetrics(SM_SCREENY):dPoint.y=dyGetCursorPosmPointWithActivePresentation.SlideShowWindowmWnd=WindowFromPoint(mPoint.x,mPoint.y)GetWindowRectmWnd,WRsx=WR.Leftsy=WR.Topdx=(WR.Right-WR.Left)/ActivePresentation.PageSetup.SlideWidthdy=(WR.Bottom-WR.Top)/ActivePresentation.PageSetup.SlideHeightEndWithIfdxdyThensx=sx+(dx-dy)*ActivePresentation.PageSetup.SlideWidth/2dx=dyEndIfIfdydxThensy=sy+(dy-dx)*ActivePresentation.PageSetup.SlideHeight/2dy=dxEndIfWhiledragModeGetCursorPosmPointsh.Left=(mPoint.x-sx)/dx-sh.Width/2sh.Top=(mPoint.y-sy)/dy-sh.Height/2DoEventsi=i+1:Ifi2000ThendragMode=False:ExitSubWendEndSub5.点击“保存”后,关闭代码模式,回到ppt设计页面。在你需要拖动的图片上鼠标右击,选择“动作设置——单击鼠标——运行宏——确定”!6.放映幻灯片,看看效果吧。拖动图片方式:播放PPT,在图片上单击鼠标,放开后,图片就随你鼠标移动,如果你再单击鼠标,图片就停在你单击的地方。二、通过VBA编实现PPT中图片的拖动功能此处建议将宏的安全级别设置为低。1.在演示文稿插入图像控件(视图——工具栏——控件工具箱),打开属性窗口,将picture设成你想拖动的图片(图片大小要根据实际情况进行调整),遗憾的是Image控件不支持透明。2.双击图像控件,打开的VBA编辑窗口(注意双击后先删除所有代码),复制下面的代码:DimX1,Y1AsIntegerDimDownAsBooleanPrivateSubImage1_MouseDown(ByValButtonAsInteger,ByValShiftAsInteger,ByValXAsSingle,ByValYAsSingle)IfNotDownThenX1=XY1=YDown=TrueEndIfEndSubPrivateSubImage1_MouseMove(ByValButtonAsInteger,ByValShiftAsInteger,ByValXAsSingle,ByValYAsSingle)IfDownThenImage1.Left=Image1.Left+X-X1Image1.Top=Image1.Top+Y-Y1X1=XY1=YEndIfEndSubPrivateSubImage1_MouseUp(ByValButtonAsInteger,ByValShiftAsInteger,ByValXAsSingle,ByValYAsSingle)Down=FalseSlideShowWindows(1).View.FirstEndSub3.保存,关闭VBA编辑窗口,放映幻灯片,即可看效果了。4.如果你想拖动多张图片,如法炮制,复制上面的三个鼠标事件,修改Image1、X1、Y1。拖动图片方式:播放PPT,在图片上按住鼠标,并且要长按住,这样图片才会随你鼠标移动,放开后,图片就停在你放开的地方。