Ve svém článku The ArrowKeyNav Routine jsem představil Sub, který můžete použít k přepsání výchozího zacházení s klávesami se šipkami nahoru a dolů na souvislém formuláři. Problém s rutinou, jak jsem ji představil, je, že ji musíte volat z každého ovládacího prvku, kde chcete potlačit funkci šipky.
Zde je návod, jak by to mohlo vypadat v modulu formuláře:
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
Existuje několik způsobů, jak snížit množství standardního kódu, který v této situaci potřebujeme, ale pro účely tohoto článku to necháme stranou. Takže pro argumentaci předpokládejme, že neexistuje způsob, jak snížit množství kódu. Vzhledem k tomuto omezení, jak můžeme zvýšit čitelnost výše uvedeného kódu?
Spojení řádků kódu pomocí dvojtečky
Můžeme spojit více řádků kódu pomocí dvojtečky (:
).
se používá jako koncový prvek syntaktické gramatiky k pojmenování tokenu který funguje jako značka „konce příkazu“. Obecně je konec příkazu označen buď nebo znakem dvojtečky .
Zlepšení čitelnosti spojením řádků
Tato technika je něco, co musíte používat opatrně. Pokud se však použije uvážlivě, může zvýšit čitelnost vašeho kódu.
Ve výše uvedeném ukázkovém kódu každý Sub volá stejný přesný kód:
ArrowKeyNav KeyCode, Shift
Ve skutečnosti to není pravda. Když se podíváte pozorně, uvidíte, že tbProductCode_KeyDown()
rutina prochází vbKeyDown
namísto KeyCode
jako první argument.
Tento rozdíl lze snadno přehlédnout při použití standardního formátování VBA:
Špatný kód vypadá špatně
Pokud spojíme řádky pomocí dvojteček – a upravíme mezery, aby všechna naše volání ArrowKeyNav
jsou zarovnány doleva – pak nekonzistence, která se prolíná výše, vynikne v níže uvedeném kódu jako bolavý palec:
Při pohledu v kontextu normálních funkcí a podprogramů se náš blok standardního kódu jasně odlišuje. Toto rozlišení pomáhá zvýšit poměr signálu k šumu našeho kódu: