vba制作交互动画 (vba制作漂亮的软件界面)

No.1

监控大屏并不陌生,由于视频监控是一个一个监视器拼接而成,所以呈现出一些特殊的效果。

屏幕和屏幕之间有一条黑线,当然目前些全面屏已经实现无缝拼接效果,整体显示效果也十分流畅。

完成效果

vba制作图片压缩程序,vba制作条形图

本节介绍一下利用VBA来制作一个拼接显示效果。

其中,用天一张图片,并且要对此图片做切片处理,分别切成若干张小图片。

这一步要利用PS来制作,当然也可以利用其它图片处理软件。

下图为切片示例

vba制作图片压缩程序,vba制作条形图

保存为*.jpg格式文件,本示例切为9张不同的图片。

接下来,利用VBA编码来对图片进行拼装。

其利用了LoadPicture方法。

.Picture = LoadPicture(ImgPath & pObj.Name & ".jpg")

实际上就是把9张图片按照相应的顺序进行显示。

重点要设置边框,不然没有拼接效果,会显示为一张完整的图片。

vba制作图片压缩程序,vba制作条形图

No.2

代码

Private Sub UserForm_Initialize()
With Me
    .Width = 820
    .Height = 550
    .Caption = "拼接屏效果"
End With
With Me.Label1
    .Top = 10
    .Left = 0
    .Width = Me.Width
    .Height = 45
    .Caption = "拼接屏效果"
    .TextAlign = fmTextAlignCenter
    .ForeColor = RGB(21, 202, 111)
    With .Font
        .Size = 24
        .Name = "微软雅黑"
        .Bold = True
    End With
End With
Dim pObj As Object
Dim i As Integer, ImgPath As String, pTop As Long, pLeft As Long, pNum As Integer, pN As Long
Dim pColor As Long
pColor = 8211322
pN = 9 '图片总数
pNum = 3 '图片列数
pTop = 80 '图片上边距
pLeft = 100 '图片左边距
ImgPath = ThisWorkbook.Path & "\pic\images\" '图片保存地址
For i = 1 To pN
    Set pObj = Me.Controls.Add("Forms.image.1", "b2_0" & i)
    With pObj
        .Picture = LoadPicture(ImgPath & pObj.Name & ".jpg")
        .Width = 200
        .Height = 120
        .PictureSizeMode = 1
        .BorderColor = pColor
        .BorderStyle = 1
        If i <= 3 Then
             .Top = pTop
            .Left = (i - 1) * .Width + pLeft
        ElseIf i <= 6 Then
             .Top = pTop + .Height
             .Left = (i - ((pNum * 1) + 1)) * .Width + pLeft
        Else
             .Top = pTop + 2 * .Height
            .Left = (i - ((pNum * 2) + 1)) * .Width + pLeft
        End If
    End With
Next i
End Sub

如上代码放入UserForm_Initialize()事件里,本事件是Form表单事件,工作机制为当对话框装载前执行的代码。

利用图片可使应用程序人机交互性更加友好,所以要认真学好图片相关操作方法。

欢迎关注、收藏

---END---