Mengubah Warna Cell dengan Macro
Contoh kasus
Di file ExcelPix (Use Your Illusion), saya membuat ExcelPix cover album ketiga Guns N' Roses yaitu "Use Your Illusion I". Di album keempat GNR, cover album menampilkan gambar yang sama tapi hanya berbeda scheme warna. Dengan cara manual kita bisa mengubah warna pada cell dengan memilih menu Home > Fill Color
dan memilih Theme Color yang disediakan atau tentukan warna sendiri.
|
Mengubah warna cell secara manual |
Solusi dengan macro
Kalau kita menginginkan perubahan warna tersebut hanya sekali, mungkin dengan cara manual bisa diterima. Tapi kalau perubahan warna tersebut mau dilakukan secara sering, tentunya cara di atas tidak efisien. Karena itu perlu memanfaatkan fasilitas macro yang ada di Excel. Langkah-langkahnya sebagai berikut:
- Tentukan dulu range yang ingin diubah warnanya, kita tidak ingin Excel mencari cell yang berwarna dari ujung kiri atas sampai ujung kanan bawah. Kita gunakan perintah
Akhir = Range("A1").SpecialCells(xlCellTypeLastCell).Address
untuk menentukan alamat dari cell terakhir. Metode SpecialCells(xlCellTypeLastCell) tidak akan mempedulikan apakah cell tersebut ada isinya atau tidak, selama cell tersebut formatnya sudah kita ubah (misal dengan mengubah fill color), Excel tetap akan memperlakukan dia sebagai cell terakhir yang digunakan. Setelah mendapat alamat cell terakhir, kita tentukan range yang ingin kita ubah warna cell-nya dengan perintah Set Rng = Range("A1:" & Akhir)
.
- Setelah range ditentukan, langkah kedua kita lakukan looping dari cell A1 sampai "Akhir" untuk mencari warna yang ingin kita ubah dan tentukan warna pengganti jika warna tersebut sudah ditemukan. Kita gunakan perintah berikut:
For Each sel In Rng
Select Case sel.Interior.Color
Case RGB(185, 23, 46)
sel.Interior.Color = RGB(76, 41, 135)
Case RGB(240, 182, 7)
sel.Interior.Color = RGB(39, 129, 181)
Case RGB(106, 22, 45)
sel.Interior.Color = RGB(14, 6, 57)
End Select
Next
Kita ingin mengubah warna merah gelap (RGB(185, 23, 4)) menjadi warna biru gelap (RGB(76, 41, 135)), warna orange (RGB(240, 182, 7)) menjadi warna biru muda (RGB(39, 129, 181)), warna merah gelap banget (RGB(106, 22, 45)) menjadi warna biru gelap banget (RGB(14,6,57)).
- Langkah ketiga, buat Command Button dari menu
Developer > Insert > ActiveX Controls
. Dari caption Command Button tersebut, kita bisa manfaatkan untuk melakukan switch perubahan warna. Artinya jika scheme warnanya merah, maka akan diubah menjadi biru, jika scheme warnanya biru maka akan diubah menjadi merah.
Berikut coding VBA lengkapnya:
Option Explicit
Private Sub CommandButton1_Click()
Dim Akhir As String
Dim Rng As Range
Dim sel As Range
Akhir = Range("A1").SpecialCells(xlCellTypeLastCell).Address
Set Rng = Range("A1:" & Akhir)
If CommandButton1.Caption = "Use Your Illusion II" Then
For Each sel In Rng
Select Case sel.Interior.Color
Case RGB(185, 23, 46) 'merah gelap
sel.Interior.Color = RGB(76, 41, 135) 'biru gelap
Case RGB(240, 182, 7) 'oranye
sel.Interior.Color = RGB(39, 129, 181) 'biru muda
Case RGB(106, 22, 45) 'merah gelap
sel.Interior.Color = RGB(14, 6, 57) 'biru gelap banget
End Select
Next
CommandButton1.Caption = "Use Your Illusion I"
ElseIf CommandButton1.Caption = "Use Your Illusion I" Then
For Each sel In Rng
Select Case sel.Interior.Color
Case RGB(76, 41, 135)
sel.Interior.Color = RGB(185, 23, 46)
Case RGB(39, 129, 181)
sel.Interior.Color = RGB(240, 182, 7)
Case RGB(14, 6, 57)
sel.Interior.Color = RGB(106, 22, 45)
End Select
Next
CommandButton1.Caption = "Use Your Illusion II"
End If
End Sub
|
Mengubah warna cell dengan macro |
Untuk melakukan perubahan warna secara otomatis, klik tombol (command button) yang sudah dibuat sebelumnya. Download file Mengubah Warna Cell dengan Macro di Google Drive.
0 comments:
Post a Comment