Dalam artikel saya, Rutin ArrowKeyNav, saya menyajikan Sub yang dapat Anda gunakan untuk mengganti penanganan default tombol panah atas dan bawah pada formulir berkelanjutan. Masalah dengan rutin seperti yang saya sajikan adalah Anda harus memanggilnya dari setiap kontrol tempat Anda ingin mengganti fungsionalitas tombol panah.
Inilah yang mungkin terlihat seperti dalam modul formulir:
Private Sub cbSupplierID_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub chkDiscontinued_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub tbID_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub tbListPrice_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub tbProductCode_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav vbKeyDown, Shift
End Sub
Private Sub tbProductName_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Ada beberapa cara untuk mengurangi jumlah kode boilerplate yang kita butuhkan dalam situasi ini, tetapi kita akan mengesampingkannya untuk tujuan artikel ini. Jadi, demi argumen, anggap saja tidak ada cara untuk mengurangi jumlah kode. Mengingat kendala itu, bagaimana kita bisa meningkatkan keterbacaan kode di atas?
Menggabungkan baris kode dengan karakter titik dua
Kita dapat menggabungkan beberapa baris kode menggunakan karakter titik dua (:
).
digunakan sebagai elemen terminal tata bahasa sintaksis untuk memberi nama token yang bertindak sebagai penanda "akhir pernyataan". Secara umum, akhir pernyataan ditandai dengan atau karakter titik dua .
Meningkatkan keterbacaan dengan menggabungkan baris
Teknik ini adalah sesuatu yang perlu Anda gunakan dengan hati-hati. Namun, jika digunakan dengan bijaksana, ini dapat meningkatkan keterbacaan kode Anda.
Dalam contoh kode di atas, setiap Sub memanggil kode yang sama persis:
ArrowKeyNav KeyCode, Shift
Sebenarnya, itu tidak benar. Jika Anda perhatikan lebih dekat, Anda akan melihat bahwa tbProductCode_KeyDown()
melewati rutin vbKeyDown
bukannya KeyCode
sebagai argumen pertama.
Perbedaan ini mudah dilewatkan menggunakan format VBA standar, meskipun:
Membuat kode yang salah terlihat salah
Jika kita menggabungkan garis menggunakan titik dua–dan mengatur spasi sehingga semua panggilan kita ke ArrowKeyNav
rata kiri–maka ketidakkonsistenan yang menyatu di atas menonjol seperti jempol yang sakit pada kode di bawah ini:
Jika dilihat dalam konteks fungsi dan subrutin normal, blok kode boilerplate kami jelas berbeda. Perbedaan ini membantu meningkatkan rasio signal-to-noise dari kode kita: