Bagaimana cara menggunakan pernyataan vba with bersarang?
Poin-poin penting
- Gunakan pernyataan VBA With untuk meminimalkan kode.
- Anda hanya dapat menggunakan satu objek dalam satu waktu saat menggunakan pernyataan With.
Apa itu VBA dengan deklarasi
VBA With adalah pernyataan untuk menentukan suatu objek satu kali dan kemudian mengeksekusi beberapa pernyataan untuk objek tersebut. Dengan kata sederhana, gunakan pernyataan “WITH” untuk menentukan objek, dan setelah itu Anda dapat mengakses semua properti dan metode sekaligus. Dimulai dengan “Dengan” dan diakhiri dengan “Selesai dengan”.
Sintaks VBA dengan pernyataan
Berikut adalah sintaks yang perlu Anda gunakan untuk menggunakan pernyataan With di VBA:
With [OBJECT] [Statement] End With
- With : Ini adalah kata kunci awal dari pernyataan yang memberitahu VBA bahwa Anda menentukan objek yang disebutkan.
- Objek : Di sini Anda perlu menentukan objek yang ingin Anda gunakan.
- Pernyataan : Satu atau lebih pernyataan yang ingin Anda jalankan dengan objek tertentu.
- Diakhiri Dengan : Ini adalah kata kunci akhir dari pernyataan tersebut.
Contoh untuk memahami VBA Dengan Pernyataan
Mari kita ambil contoh untuk memahami dengan pernyataan mendalam. Katakanlah Anda ingin mengubah warna font, ukuran, dan nama sel A1. Untuk melakukan ketiga hal ini, Anda perlu mengakses tiga properti font VBA yang berbeda dan kodenya adalah:
Range("A1").Font.Color = RGB(0, 0, 255) Range("A1").Font.Size = 16 Range("A1").Font.Name = "Consolas"
Tapi di sini kita akan menggunakan pernyataan With alih-alih kode di atas. Untuk menggunakan pernyataan VBA With, Anda dapat mengikuti langkah-langkah berikut:
- Pertama ketikkan keyboard “Dengan”.
- Setelah itu, gunakan rentang VBA untuk menentukan sel A1 menggunakan objek font untuk menentukan objek font.
- Selanjutnya, Anda perlu memasukkan kode untuk tiga properti dan nilai yang ingin Anda terapkan.
- Di akhir, gunakan kata kunci “End With” untuk mengakhiri pernyataan.
Ini kode yang baru saja Anda tulis.
Sub MyMacro() With Range("A1").Font .Color = RGB(0, 0, 255) .Size = 16 .Name = "Consolas" End With End Sub
Sekarang mari kita lihat kedua kode tersebut dan coba pahami apa perbedaan yang kita miliki dengan menggunakan pernyataan “Dengan”.
Pada kode pertama, Anda menggunakan objek font tiga kali dan kemudian menggunakan properti yang ingin Anda akses dan ingin Anda ubah.
Namun pada kode kedua, Anda menggunakan pernyataan With dan segera menentukan objek font. Dan kemudian tiga baris kode dalam pernyataan “Dengan” untuk mengakses tiga properti.
Saat Anda menggunakan pernyataan “Dengan” dan menentukan sebuah objek, ia memberitahu VBA bahwa semua pernyataan yang Anda tulis harus dijalankan dengan objek yang disebutkan. Ini tidak hanya memberi Anda kode terstruktur, tetapi juga mempercepat eksekusi makro dan memberikan efisiensi yang lebih besar.
Bersarang dengan pernyataan
Saya sudah bilang di awal bahwa Anda hanya dapat menentukan satu objek untuk menggunakan pernyataan With. Namun ada cara untuk menggunakan lebih dari satu atau bahkan beberapa item dengannya. Ini menggunakan VBA LOOPS , dan kita akan menggunakan FOR EACH LOOP untuk mengulang beberapa objek dan menggunakan “Dengan”.
Izinkan saya memberi Anda sebuah contoh; Anda harus memeriksa semua lembar kerja dan menerapkan semua hal berikut ke semua sel di setiap lembar kerja.
- Ukuran huruf: 16
- Font: Verdena
Dan di buku kerja, Anda memiliki lima lembar kerja, seperti pada contoh berikut:
Gunakan langkah-langkah berikut untuk menulis pernyataan “Dengan” yang disarangkan.
- Pertama, Anda harus mendeklarasikan variabel untuk menggunakan objek lembar kerja.
- Setelah itu, seperti saya katakan, Anda perlu menggunakan For Each Loop . Jadi, Anda perlu menulis kode dengan loop yang dapat mengulang semua lembar kerja .
- Sekarang masukkan pernyataan with yang dapat menerapkan pengaturan font yang kita bahas di atas. Untuk merujuk ke semua sel di lembar kerja, Anda bisa menggunakan “Sel” sambil menentukan subjek.
Ini kode lengkap yang baru saja Anda tulis.
Sub MyMacro() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets With Cells .Font.Size = 16 .Font.Name = "Verdena" End With Next ws End Sub