Membuat UserForm menjadi Transparant dan dalam hitungan beberapa detik userform akan keluar / exit secara otomatis hal ini dapat dibilang Fade Out (transparant secara pelan-pelan). Lalu apa fungsinya dari fade out ini? bahwasanya tidak ada fungsi secara khusus penggunakan transparant ini namun saya kira ini dapat dijadikan sebagai alternatif animasi dari sebuah UserForm yang dibentuk pada VBA Ms. Excel.
Bukankah kelihatan keren kalau Anda mempunyai sebuah Aplikasi yang mempunyai variasi animasi yang cukup menarik bagi para user namun tentunya tidak mengurangi fungsi utama dari pembuatan aplikasi tersebut. Animasi userform fade out ini hanya sekedar pemanis saja. Seperti yang telah saya buat beberapa atau koleksi aplikasi yang dibentuk memakai Ms. Excel di blog ini, bagi yang berminat mencobanya silakan cari-cari saja sudah ada kategori dari setiap materinya kok.
Baiklah, bagaimana cara menciptakan Fade Out Animasi UserForm tersebut?
Langkah-langkahnya silakan buat sebuah userform yang disertai dengan label dan ganti caption untuk label tersebut menjadi goresan pena "Terimakasih..." kemudian tambahkan pula 1 buah commandbutton kemudian ganti juga caption melalui properties menjadi "Close" kira-kira desain tampilan menyerupai berikut ini untuk pewarnaan latar belakang dari userform Anda dapat lakukan sendiri dengan mengganti BackColor pada propertis menjadi &H00FF0000& atau warna biru.Terlihat pada tampilan userform diatas bertuliskan ucapan "Terimakasih" tentunya Anda sudah dapat membaca bahwa animasi fade out userform ini hanya untuk sekedar gosip dalam animasi saja. Langkah berikutnya kita akan menciptakan coding dan silakan perhatikan coding berikut ini
Tambahkan Coding Berikut pada UserForm
Option Explicit
Private Declare Function GetActiveWindow Lib "USER32" () As Long
Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, _
ByVal lngWinIdx As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, _
ByVal lngWinIdx As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "USER32" _
(ByVal hWnd As Long, _
ByVal crKey As Integer, _
ByVal bAlpha As Integer, _
ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_ALPHA = &H2
Private Const GWL_EXSTYLE = &HFFEC
Dim hWnd As Long
Dim Transparancy As Integer
Dim Running As Boolean
Jika Sudah simpulan tambahkan juga coding untuk mekanisme Transparant nya menyerupai berikut ini
Private Sub Transparency()Dim MyTimer As Double
DoEvents
MyTimer = Timer
Do
Do
Loop While Timer - MyTimer < 0.07
MyTimer = Timer
Transparancy = Transparancy - 1
If Transparancy < 0 Then
Unload Me
Else
Call SemiTransparent(Application.WorksheetFunction.Min(Transparancy, 100))
End If
DoEvents
Loop While Running
End Sub
Jika sudah simpulan menciptakan modul Transparant tambahkan juga untuk semi trasnparan atau Anda dapat copy pastekan coding berikut ini
Private Sub SemiTransparent(ByVal intLevel As Integer)
Dim lngWinIdx As Long
hWnd = GetActiveWindow
lngWinIdx = GetWindowLong(hWnd, GWL_EXSTYLE)
SetWindowLong hWnd, GWL_EXSTYLE, lngWinIdx Or WS_EX_LAYERED
SetLayeredWindowAttributes hWnd, 0, (255 * intLevel) / 100, LWA_ALPHA
End Sub
Jika sudah simpulan langkah berikutnya kita akan memanggil coding mekanisme diatas kedalam mekanisme userform initialize maka silakan tuliskan coding berikut
Private Sub UserForm_Initialize()
Transparancy = 120
Call SemiTransparent(100)
DoEvents
End Sub
Tambahkan juga coding untuk mekanisme dikala userform aktif untuk memanggil coding transparant
Private Sub UserForm_Activate()
Running = True
Call Transparency
End Sub
Agar dikala Form di close atau keluar maka Anda harus mematikan runing dari time transparant tersebut maka silakan tambahkan coding Close Query
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Running = False
End Sub
Bagaimana mengecek hasilnya?
Silakan jalankan printah tersebut maka akan muncul userform menyerupai gambar diatas dengan ucapan terimakasih dan dalam hitungan beberapa detik userform akan bermetamorfosis transparant menyerupai gambar berikut ini
Lihatlah ada perbedaan antara gambar form paling atas dengan gambar form yang kedua diatas ialah transparancy.
Oke, demikian bagaimana menciptakan animasi userform dengan Fade Out dan close dalam beberapa detik, biar saja bermanfaat dan selamat mencoba. Jangan lupa kalau ada pertanyaan silakan komentar dibawah mudah-mudahan dapat terjawab. Sumber http://www.excel-id.com/