Thursday, January 16, 2014

Modul VBA: Konversi "Hexadecimal Color Codes" Agar Bisa Digunakan dalam Penulisan Kode VBA


Pada kesempatan ini, saya akan berbagi ilmu tentang Hex Code dan bagaimana cara membuat fungsi untuk mengkonversi Hex Code agar dapat digunakan saat menulis kode VBA.

Hexadecimal Color Code atau lebih dikenal sebagai Hex Color Code adalah kode warna yang penulisannya terdiri dari angka 0-9 dan huruf A-F. Format penulisan Hex Code  adalah #rrggbb.
Contoh: #ff0000 akan menghasilkan warna merah dalan Hex Code.
Contoh: rgb(255,0,0) akan menghasilkan warna merah dalan Hex Code.

# /tanda pagar menandakan bahwa kode tersebut adalah Hex Color
rr mewakili warna merah (red)
gg mewakili warna hijau (green)
bb mewakili warna biru (blue)

Jika Anda mengenal format RGB color, tentunya Anda akan punya pemikiran bahwa Hex Code memiliki hubungan dengan RBG Color Format

Hex Code sangat terkenal dalam dunia pemrograman web, karena dalam penulisan css (Casscading Style Sheet) khusunya berkaitan dengan property colorBerbeda dalam pemrograman VBA khusunya di Microsoft Visual Basic For Applications, kita tidak dapat asal menggunakan Hex Code, misalnya:

Me.nama_object.BackColor="#ff0000"

Hal ini dikarenakan VBA hanya mengenal vbColor serta Hex Code/RGB Color dengan format Long Type Data.

Misalnya:
vbColor:Me.nama_object.BackColor=vbRed
Me.nama_object.BackColor=vbWhite
Me.nama_object.BackColor=vbBlack
Me.nama_object.BackColor=vbGreen
Me.nama_object.BackColor=vbBlue
Me.nama_object.BackColor=vbYellow
Me.nama_object.BackColor=vbMagenta
Me.nama_object.BackColor=vbCyan

Sedangkan untuk menggunakan Hex Code perlu membuat modul fungsi.

Untuk itu, pada saat kita ingin menggunakan Hex Code dalam penulisan kode VBA, maka perlu membuat fungsi konversi dari kode warna Hex Code ke dalam tipe data Long.

Logikanya adalah:
1. Menghilangkan tanda pagar (#), bersifat opsional saat penulisan Hex Code.
2. Memilah mana yang sebagai R, G dan B.
3. Membalikkan format dari RGB ke format BGR.
3. Mengkonversi kedalam tipe data Long Number dengan fungsi  CLng().

Langkah-langkah:
1. Buat Module baru dan simpan dengan nama sesuai dengan keinginan Anda, misal HexColor.
2. Copy dan Paste kode yang ada di bawah.
3. Ctrl+S
4. Siap digunakan.

Kode dan penjelasan:
Option Explicit
Public Function HexColor(strHex As String) As Long

'Contoh Penggunaan:
'Me.object_name.BackColor=HexCode("#ff0000")
'Me.Text0.BackColor=HexCode("#ff0000")
'Me.Text0.BorderColor=HexCode("#ff0000")

'Deklarasi variabel 
 Dim strColor As String 
 Dim strR As String 
 Dim strG As String 
 Dim strB As String

'Menghilangkan tanda pagar (#) jika nilai strHex mengandung tanda pagar, misal: #ffffff
'Jika tidak mengandung tanda (#) secara otomatis langkah ini akan dilewati, misal: ffffff 
 If Left(strHex, 1) = "#" Then 
 strHex = Right(strHex, Len(strHex) - 1)
 End If 

 'Memilah mana yang sebagai R, G, dan B dari format Hex Code : #RRGGBB
strR = Left(strHex, 2) strG = Mid(strHex, 3, 2) strB = Right(strHex, 2)
'Membalik format dari RGB ke BGR'Misal dari kode #fa91d3 menjadi #d391fa
strColor = strB & strG & strR
'Mengkonversi hasil pembalikan "strColor" ke dlama tipe data Long Number 

 HexColor = CLng("&H" & strColor)
End Function

Semoga bermnfaat dan selamat Mencoba.


Penulis: Trisna Novi Ashari - Universitas Negeri Semarang '11

No comments:

Post a Comment