Contoh Macro Sederhana: Menghitung Gaji dan Memformat Sel.
Sub Calculate_Salary()
Dim wage As Single
Dim hours As Single
Dim salary As Single
wage = Range(“A1”).Value
hours = Range(“A2”).Value
salary = wage * hours
MsgBox “Your salary is “ & salary, vbInformation, “Salary Calculation”
Range(“A3”).Value = salary
With Range(“A1:A3”)
.Font.Bold = True
.Interior.Color = RGB(144, 238, 144) ' Latar belakang hijau muda
End With
End Sub
Penjelasan Kode:
- Dim wage As Single: Ini adalah deklarasi variabel wage (upah) dengan tipe data Single.
- Dim hours As Single: Ini adalah deklarasi variabel hours (jam kerja) dengan tipe data Single.
- salary = wage * hours: Di sini, total gaji dihitung dengan mengalikan upah dan jam kerja.
- MsgBox: Hasil perhitungan gaji akan ditampilkan melalui kotak pesan (Message Box).
- Range(“A3”).Value = salary: Hasil perhitungan gaji disimpan di sel A3.
- With Range(“A1:A3”): Sel A1 hingga A3 akan diformat dengan teks tebal dan latar belakang berwarna hijau muda (RGB(144, 238, 144)).
Hasil yang Diharapkan:
- Anda akan memasukkan nilai upah di A1 dan jam kerja di A2.
- Saat macro dijalankan, gaji akan dihitung secara otomatis dan ditampilkan di sel A3.
- Hasil gaji juga akan muncul di Message Box.
- Sel A1 hingga A3 akan diformat dengan teks tebal dan warna latar belakang hijau muda.
Menggunakan For…Next Loop dalam Macro
Dengan memanfaatkan struktur For…Next Loop, Anda dapat mengotomatisasi pengisian sel di lembar kerja Excel dengan data tertentu. For…Next Loop memungkinkan Anda untuk melakukan iterasi melalui baris atau kolom dalam rentang yang ditentukan, sehingga sangat efektif untuk mengulang tugas dalam pengisian data.
Contoh: Mengisi Rentang Sel dengan Hasil Penjumlahan Baris dan Kolom
Berikut adalah contoh macro yang memanfaatkan For…Next Loop untuk mengisi rentang sel A1:E10 dengan nilai yang dihasilkan dari penjumlahan antara nomor baris dan nomor kolom.
Sub Fill_Cells_With_Loop()
Dim i As Integer, j As Integer
For i = 1 To 10
For j = 1 To 5
Cells(i, j).Value = i + j
Next j
Next i
With Range(“A1:E10”)
.Font.Bold = True
.Interior.Color = RGB(224, 255, 255)
End With
End Sub
Penjelasan Kode:
- For i = 1 To 10: Loop pertama untuk iterasi melalui baris, dari 1 hingga 10 (baris 1 sampai 10).
- For j = 1 To 5: Loop kedua untuk iterasi melalui kolom, dari 1 hingga 5 (kolom A hingga E).
- Cells(i, j).Value = i + j: Mengisi sel dengan hasil penjumlahan antara nomor baris (i) dan nomor kolom (j).
- With Range(“A1:E10”): Memformat sel A1 hingga E10 dengan teks tebal dan latar belakang berwarna biru muda.
Menggunakan Fungsi Chr() untuk Membuat Karakter
Fungsi Chr() dalam VBA berfungsi untuk menghasilkan karakter yang sesuai dengan kode ASCII. Kode ASCII adalah angka yang mewakili karakter dalam sistem komputer. Contohnya, kode 65 menunjukkan huruf A, sedangkan kode 66 menunjukkan huruf B, dan seterusnya.
Anda dapat memanfaatkan Fungsi Chr() untuk membuat makro yang mengisi sel dengan karakter yang dihasilkan dari kode ASCII, baik secara acak maupun tertentu.
Contoh: Mengisi Rentang Sel dengan Karakter Acak Menggunakan Fungsi Chr()
Sub Fill_Cells_With_Random_Characters()
Dim i As Integer, j As Integer
Dim asciiCode As Integer
For i = 1 To 5
For j = 1 To 5
asciiCode = Int(26 * Rnd) + 65
Cells(i, j).Value = Chr(asciiCode)
Next j
Next i
With Range(“A1:E5”)
.Font.Bold = True
.Interior.Color = RGB(255, 228, 196)
End With
End Sub
Penjelasan Kode:
- Dim asciiCode As Integer: Mendeklarasikan variabel untuk menyimpan kode ASCII.
- Int(26 * Rnd) + 65: Menghasilkan bilangan acak antara 65 dan 90. Kode 65 adalah A dalam ASCII, dan kode 90 adalah Z.
- Rnd menghasilkan bilangan acak antara 0 dan 1.
- 26 * Rnd menghasilkan bilangan antara 0 dan 25, lalu ditambah 65 untuk mendapatkan kode ASCII antara 65 (A) dan 90 (Z).
- Cells(i, j).Value = Chr(asciiCode): Mengisi sel dengan karakter yang dihasilkan oleh Chr() berdasarkan kode ASCII.
- With Range(“A1:E5”): Memformat rentang sel A1:E5 dengan teks tebal dan latar belakang berwarna peach (RGB(255, 228, 196)).