Pernyataan : With

Dalam membuat script VBA seringkali kamu akan membuat Propety atau methode yang sama ditulis secara berulang-ulang.

Hal seperti ini tentu kurang baik jika terus dilakukan. Pernyataan WITH digunakan untuk menghilangkan pengulangan script dengan variable object yang sama, dengan menghilangkan variable object dan hanya menulis propety atau methode secara langsung.

Sebelum ke contoh, mari kita lihat bagaimana Sintaksis dari With:

With ObjectName
    [Statement]
End with

With objectname adalah nama object yang akan diwakili dalam statement, sedangkan statement adalah property atau methode yang akan digunakan. Terakhir ditutup dengan End With.

Selain untuk menghindari penulisan script yang berulang, pernyataan WITH juga sangat baik untuk membuat kode script lebih flexible dan lebih mudah untuk dibaca.

Sebagai contoh misalnya:

Public Sub Contoh()
    Range("A1").Value2 = "Hello, World!"
    Range("A1").Interior.Color = vbRed
    Range("A1").Font.Bold = True
    Range("A1").Copy Range("B2")
End Sub

Script diatas adalah script yang belum menggunakan With. Bisa dilihat jika Object Range("A1") ditulis secara berulang-ulang karena memang script-script diatas memiliki tujuan untuk mengakses Range A1.

Dengan blok WITH, script dapat dibuat dengan lebih baik dengan mengurangi pengulangan. Mengurangi pengulangan berarti membuat kode lebih mudah untuk ditulis, dibaca, dan diperbaiki saat ada kesalahan.

Menggunakan pernyataan with, nama objek hanya perlu ditulis sekali, dibaca sekali, dan jika kode perlu diubah, maka yang perlu diperbarui hanya satu saja.

Bentuk script setelah With dimasukan menjadi seperti ini:

Public Sub Contoh()
    With Range("A1")
        .Value2 = "Hello, World!"
        .Interior.Color = vbRed
        .Font.Bold = True
        .Copy Range("B2")
    End With
End Sub

Range(“A1”) cukup diwakili oleh With, untuk menggunakan With pada script selanjutnya, script menggunakan Operator titik (.) artinya object sebelum titik sama dengan object yang ditulis dalam With.

WITH Bertingkat

Pernyataan WITH juga bisa dibuat bertingkat atau nested, dimana WITH yang berada paling dalam merupakan propety turunan dari object with sebelumnya. Sehingga bisa dibuat With didalam With.

Contoh :

Public Sub Contoh()
   Range("A1").Interior.ColorIndex = 4
   Range("A1").Value = "Hello, World!"
   Range("A1").Font.Bold = True
   Range("A1").Font.Italic = True
   Range("A1").Font.Underline = True
End Sub

Jika dilihat pada script diatas, Range("A1") dan Font itu scriptnya ditulis berulang-ulang, dan Font merupakan property dari Range. Maka script nya dibuat disingkat menggunakan With menjadi seperti ini.

Public Sub Contoh()
    With Range("A1")
        .Interior.ColorIndex = 4
        .Value = "Hello, World!"
        With .Font
            .Bold = True
            .Italic = True
            .Underline = True
        End With
    End With
End Sub

Leave a Reply

Your email address will not be published. Required fields are marked *

Chat WhatsApp
WhatsApp