怎样使用VBA让窗体在指定时间逐渐退出?
1、首先在开发工具中打开VBA编辑器
2、在单元格区域当中输入一些内容作为例子
3、在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
5、
用快捷键F5运行窗体,窗体在5秒钟后关闭,且关闭时有过渡效果
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:24
阅读量:75
阅读量:29
阅读量:38
阅读量:47