PowerPoint中大图片的浏览

    我们在制作幻灯片时,常常遇到这种情况,就是在800X600的屏幕上(甚至是某一区域)浏览分辨率超过800X600的图片,用常规方法是不能达到目的的,借助VBA(Visual Basic for Application)可以帮助我们实现这一目的。
    先启动VBA,在视图->工具拦->Visual Basic,然后在幻灯片上放置一个图象框,设置图象框的Picture属性(为你要浏览的图片路径及文件名),设置图象框的AutoSize属性为True。
双击图象框,写如下程序:
(通用)
Private StartX As Single    ‘记录鼠标按下时的X坐标
Private StartY As Single    ‘记录鼠标按下时的Y坐标
Private BMouseDown As Boolean      ‘鼠标是否按下
'定义移动范围,你可以更改这些数字使程序适应你的要求
Private Const MaxLeft As Integer = 0
Private Const MaxTop As Integer = 0
Private Const MinLeft As Integer = -820
Private Const MinTop As Integer = -1464

‘在你不能确定鼠标的移动范围时,下面的这段程序可以帮你确定
‘Private Sub Image1_Click()
‘MsgBox Str(Image1.Left) + "     " + Str(Image1.Top)
‘End Sub

Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    ‘鼠标按下,记录鼠标的X,Y
    BMouseDown = True
    StartX = X
    StartY = Y
End Sub

Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    ‘鼠标弹起,根据ΔX和ΔY来确定图象框的移动
    Dim DX As Single
    Dim DY As Single
If BMouseDown Then
   ‘计算ΔX和ΔY
       DX = X - StartX
       DY = Y - StartY
       If Image1.Left + DX > MinLeft And Image1.Left + DX < MaxLeft Then
          Image1.Left = Image1.Left + DX
       Else
          If Image1.Left + DX <= MinLeft Then
             Image1.Left = MinLeft
          End If
          If Image1.Left + DX >= MaxLeft Then
             Image1.Left = MaxLeft
          End If
       End If
       If Image1.Left + DY > MinTop And Image1.Left + DY < MaxTop Then
          Image1.Top = Image1.Left - DY
       Else
          If Image1.Left + DY <= MinTop Then
             Image1.Top = MinTop
          End If
          If Image1.Left + DY >= MaxTop Then
             Image1.Top = MaxTop
          End If
       End If
       BMouseDown = False
    End If
End Sub
好了,关闭Visual Basic,点击幻灯片放映,定位到你刚才有图象框的那一页,通过鼠标的按下,按下移动,弹起,你就可以浏览整个大的图片了。

你可能感兴趣的:(Office,ppt,VBA,休闲,powerpoint)