【VBA研究】显示GIF动态图片

iamlaosong文

一个小需求,要求输入某个数字后显示一个鼓掌的动态图片。Excel是无法显示动态图片的,不过可以用浏览器控件显示动态图片。有两种方式,一是插入窗体,在窗体中插入浏览器控件;二是直接插入控件到工作表,然后控制其显示。

下面以直接插入到工作表为例,看看如何完成。

1、点击“开发工具”选项卡下面的“插入”,弹出菜单中点击“其它”图标,在弹出窗口中选择“Microsoft Web Browser”控件,点击“确定”按钮,如下图:

【VBA研究】显示GIF动态图片_第1张图片

2、光标变成“十”字,在工作表上画一个矩形框,这就是用来显示GIF图片的方框,调整好位置后点击“开发工具”选项卡下面的“设计模式”,退出设计模式才会显示图片

3、进入VBA编辑器,插入模块,输入下面代码:

Sub disp()
    ActiveSheet.WebBrowser1.Visible = True
    ActiveSheet.WebBrowser1.Navigate ThisWorkbook.Path & "\掌声.gif"
End Sub

Sub undisp()
    ActiveSheet.WebBrowser1.Visible = False
End Sub

4、双击“ThisWorkbook”,输入一下代码:

'检测工作表变化
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Column = 10 And Target.Row >= 4 And Target.Row <= 8 Then
        If Target.Value = 0.27 Then
            disp
        Else
            undisp
        End If
    Else
        undisp
    End If
End Sub

5、为了保证效果,按回车后单元格位置不变化,需要去掉移动勾选:

【VBA研究】显示GIF动态图片_第2张图片


6、至此,工作完成,当指定单元格输入27%按回车后就会显示动态图片,点击其它单元格,图片关闭。点击指定区域的单元格,如果值为27%,也会显示图片,效果如下:

【VBA研究】显示GIF动态图片_第3张图片


7、如要调整显示位置,需要点击“开发工具”选项卡下面的“设计模式”,进入设计模式就可以调整位置。

8、如果将图片换成带图片和声音的网页,估计效果会更好。


你可能感兴趣的:(VBA_Excel)