The workbook ScrollEvents.xls contains a class module called CDetectScroll that subclasses the Active Window in Excel and intercepts the WM_VSCROLL message, which occurs when the user scrolls vertically, and the WM_HSCROLL message, which occurs when the user scrolls horizontally. While it is technically possible to write the subclassing code itself in VBA, that isn't really a feasible solution. VBA simply isn't fast enough to cope with the flood of messages sent by Windows. Instead, the ScrollEvents project uses a third-party subclassing component called SSubTimer6, implemented in a DLL file called SSubTmr6.dll. This DLL is available for free on the vbAccelerator web site. You can download the zip file here, which contains the DLL and some VB6 example code, and read much more about how it works here. See this page for information about downloading and installing SSubTmr6 on your PC and referencing it in your VBA project. This DLL is required in order to use the code in the CDetectScroll class.
CDetectScroll is always working with the ActiveWindow and only with scrolling initiated by the user by clicking on a scrollbar. It will not respond to scrolling caused by VBA code.
The CDetectScroll class will raise any of 12 events, depending on how the window was scrolled
ScrollLineUp
ScrollLineDown
ScrollPageDown
ScrollPageUp
ScrollLeft
ScrollRight
ScrollLineLeft
ScrollLineRight
ScrollPageLeft
ScrollPageRight
ScrollEndHorizontalScroll
ScrollEndVerticalScroll
Each of these events passes a reference to the top-left cell in the VisibleRange of the window and a reference to the window being scrolled. To use CDetectScroll and its events, you must declare a variable WithEvents of the class CDetectScroll in an object module, such as a separate class module (as it is in the ScrollEvents.xls workbook), the ThisWorkbook module, a Userform's code module, or one of the worksheet's code modules. You declare the variable as follows
This solution changes the presentation itself, so the picture's placement on the slide will be modified. Therefore the presentation will give you the option of saving the updated presentation when you close it. If you save it, the picture will begin next time, where it finished this time (and therefore, not need to move at all). If you do not save it, than all changes will be lost, not just the ones to this picture.
2) The only speed control is by adjusting the amount the .Left value is altered by. If you change that number from 1 to 5, the picture will move 5 times faster, but will still take the same number of "steps" so the motion may become jerky.
3) VBA does not run from the viewer, or on systems with macro security set to high.
Conclusion:
If you will be running the presentation, on a machine you can set-up, and remember to restore the picture to the original position, this is an excellent option
http://www.softpedia.com/downloadTag/VBA