怎样使用VBA让窗体在指定时间逐渐退出?

2025-09-24 05:04:18

1、首先在开发工具中打开VBA编辑器

怎样使用VBA让窗体在指定时间逐渐退出?

2、在单元格区域当中输入一些内容作为例子

怎样使用VBA让窗体在指定时间逐渐退出?

3、在VBA编辑器中插入模块

怎样使用VBA让窗体在指定时间逐渐退出?

4、在模块当中输入如下代码,然后运行

Private Declare Function SetLayeredWindowAttributes Lib "use32" (ByVal

 

hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As

 

Long) As Long

 

Private Declare Function GetWindowLong Lib "use32" Alias

 

"GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long

 

Private Declare Function FindWindow Lib "use32" Alias "FindWindowA"

 

(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

 

Private Declare Function SetWindowLong Lib "use32" Alias

 

"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong

 

As Long) As Long

 

    Private Declare Function DrawMenuBar Lib "use32" (ByVal hWnd As Long) As Long

 

    Private Declare Function SetFocus Lib "use32" (ByVal hWnd As Long) As Long

 

    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

 

    Const WS_EX_LAYERED=&H80000

 

    Const GWL_EXSTYLE=(-20)

 

    Const LWA_ALPHA=&H2

 

    Private Sub UserForm_activate()

 

    Application.Wait Now+TimeValue("00:00:05") '激活窗体5秒钟后开始执行下一句代码

 

    Dim xl As Long

 

        hWndForm=FindWindow("ThunderDFrame", Me.Caption)

 

        Dim rtn As Long

 

        rtn=GetWindowLong(hWndForm, GWL_EXSTYLE)

 

        rtn=rtn Or WS_EX_LAYERED

 

        SetWindowLong hWndForm, GWL_EXSTYLE, rtn

 

        For i=255 To 0 Step-5  '此句控制速度,值越小速度越快

 

            SetLayeredWindowAttributes hWndForm, 0, i, LWA_ALPHA       '

 

            Sleep 10

 

            DoEvents

 

            DrawMenuBar hWndForm

           SetFocus hWndForm

 

        Next i

 

        Unload Me  '关闭窗体

 

    End Sub

怎样使用VBA让窗体在指定时间逐渐退出?

5、

用快捷键F5运行窗体,窗体在5秒钟后关闭,且关闭时有过渡效果

怎样使用VBA让窗体在指定时间逐渐退出?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢