wijzig taal:

Bij het maken van een applicatie is het van belang om te letten op een goede UI (User Interface) en UX (User Experience). In dit artikel worden in willekeurige volgorde diverse tips en aandachtspunten gegeven die helpen bij het verbeteren van de UI/UX van VBA formulieren.

Dit artikel zal met enige regelmaat uitgebreid worden met nieuwe tips en aandachtspunten.

Formulier algemeen

Layout

Zorg op een formulier dat alle besturingselementen netjes uitgelijnd zijn. Gebruik overal hetzelfde lettertype en probeer ervoor te zorgen dat opdrachtknoppen en dergelijke dezelfde grootte hebben. Als een applicatie bestaat uit meerdere formulieren, zorg er dan voor dat al deze formulieren dezelfde uitstraling hebben. Positioneer de Annuleer en Opslaan knop altijd op dezelfde plek onderdaan het formulier en zorg dat deze knoppen op elk formulier in dezelfde volgorde staan.

besturingselementen uitlijnen

Opstartpositie en schuifbalken

Zorg er bij het opstarten van een formulier voor dat deze op de juiste positie op het scherm komt. Vrijwel altijd is dat gecentreerd in het scherm van de applicatie. Dat kan ingesteld worden bij de eigenschap StartUpPosition, maar bij gebruik van meerdere schermen gaat dat soms wel eens mis, waardoor het formulier opent op positie waar de gebruiker dat niet verwacht of dat de gebruiker eerst het formulier naar de juiste positie moet slepen.

Ook is het van groot belang dat grote formulieren bij kleinere schermen schuifbalken krijgen, omdat die formulieren anders niet of nauwelijks te bedienen zijn. Er kan ingesteld worden dat de schuifbalken altijd zichtbaar moeten zijn, maar dat ziet er erg lelijk uit op grotere schermen.

In artikel formulier centreren en schuifbalken instellen wordt een methode gegeven waarmee formulieren altijd gecentreerd openen in het applicatiescherm en waarbij automatisch schuifbalken worden toegevoegd in gevallen wanneer dat nodig is.

Opschrift

Het ligt voor de hand dat voor het opschrift van het formulier een (korte) tekst gekozen wordt die duidelijk weergeeft wat het formulier doet. Vaak wordt hetzelfde formulier gebruikt voor het toevoegen van nieuwe data en voor het bewerken van bestaande data. Als opschrift wordt dan vaak gekozen voor 'Toevoegen / wijzigen van ...'. Beter is om deze gevallen met VBA tijdens het starten van het formulier de opschriften aan te passen op basis van de startmodus. Dus bij nieuwe data wordt het opschrift dan 'Toevoegen van ...' en bij wijzigen 'Wijzigen van ...'. Zo kan de gebruiker altijd aan het opschrift zien in welke modus het formulier gestart is.

Afsluitknop

Soms is het ongewenst dat een gebruiker een formulier afsluit met de afsluitknop. Dit wordt dan vaak afgevangen in het QueryClose-event waarbij dan een messagebox verschijnt dat het formulier niet op deze manier afgesloten mag worden. Dit is slecht voor de UX: een gebruiker klikt eerst op het kruis en moet daarna nog een messagebox wegklikken met een melding dat afluiten of deze manier niet mag. Beter is om in deze gevallen de afsluitknop op het formulier helemaal te verbergen. In dit artikel wordt uitgelegd hoe dat gedaan kan worden.

Toetsenbord bediening

Bij een formulier is het goed om erop te letten dat deze ook met een toetsenbord zo goed mogelijk bediend kan worden in plaats van met de muis.

Instellen tabvolgorde

De tabvolgorde van een formulier moet altijd goed ingesteld zijn. Op die manier kan een gebruiker met de tab-toets op de juiste volgorde door het formulier navigeren. Bij het toevoegen van een besturingselement aan een formulier kent het systeem automatisch een tabvolgordenummer toe aan dit besturingselement. Dit is normaal gesproken het eerstvolgende vrije nummer. Maar als dit besturingselement ergens tussen bestaande besturingselementen geplaatst moet worden dan zal de tabvolgorde aangepast moeten worden. Anders werkt bij de gebruiker het gebruik van de tabtoets niet goed omdat dan op onlogische volgorde door de het formulier genavigeerd wordt. Dit leidt tot een slechte UX.

De tabvolgorde kan bij een besturingselement handmatig aangepast door bij de eigenschappen het getal van de TabIndex te wijzigen. Deze index begint bij het getal 0 en loopt dan telkens met 1 op. Op het moment dat handmatig een TabIndex van een besturingselement aangepast wordt, dan worden op de achtergrond automatisch de tabindexen van de andere besturingselementen aangepast/opgeschoven zodat geen dubbelingen ontstaan.

Een andere manier om de tabvolgorde goed in te stellen is om rechts te klikken op het formulier in de designweergave. Er kan dan in een submenu gekozen worden voor tabvolgorde waarna een formulier verschijnt met de huidige tabvolgorde. Deze volgorde kan dan met behulp van dit formulier eenvoudig aangepast worden.

Cancel button

Bij een opdrachtknop kan ingesteld worden dat deze dient als Cancel-knop door bij de eigenschappen de waarde van Cancel op True te zetten. Normaal gesproken kan dit het beste ingesteld worden bij de Annuleer-knop. Als op het toetsenbord op de ESC-toets wordt gedrukt dan wordt de code uitgevoerd van de opdrachtknop waarbij Cancel op True staat. Meestal wordt hiermee dan het formulier gesloten.

Als geen enkele opdrachtknop bij Cancel de waarde True heeft, dan gebeurt er niets als op de ESC-toets wordt gedrukt. Er gebeurt ook niets als de knop met waar Cancel True is, is uitgeschakeld of gelockt. Als bij het instellen van Cancel bij een opdrachtknop blijkt dat dit bij een andere knop al op True staat, dan wordt dit automatisch bij de andere knop op False gezet. Er kan dus maximaal één knop zijn op een formulier waarbij Cancel op True staat.

Default button

Voor een opdrachtknop kan ook de eigenschap Default op True of False ingesteld worden. Als de Default eigenschap bij een opdrachtknop op True wordt gezet, dan wordt deze automatisch bij andere knoppen op False gezet. Als een opdrachtknop als Default is ingesteld dan wordt automatisch de code die bij deze knop hoort uitgevoerd met de Enter toets op het toetsenbord, tenzij een andere opdrachtknop de focus heeft.

Accelerator

Bij opdrachtknoppen kan bij eigenschappen bij Accelerator een letter worden ingevuld. Deze letter wordt dan onderstreept weergegeven in het opschrift van de opdrachtknop. Als een letter meerdere keren voorkomt in het opschrift dan wordt alleen de eerst gevonden letter onderstreept. Met deze accelerator kan dan de opdrachtknop met het toetsenbord worden bediend door de toetencombinatie Alt + Accelerator. Zorg er daarbij voor dat bij de Accelerator een letter wordt gekozen die voorkomt in het opschrift van de knop en zorg ervoor dat op een formulier deze Accelerators uniek zijn. De applicatie verhindert niet dat een dezelfde Accelerator meerdere keren voorkomt, maar bij de bediening met het toetsenbord wordt de code van 1 knop uitgevoerd.

commandbutton accelerator

Vragen / suggesties

Hopelijk heeft dit artikel geholpen bij het verbeteren van de UI-UX van een VBA formulier. Als er verdere vragen over dit onderwerp zijn of suggesties voor verbetering, plaats dan een reactie hieronder.

arrow_up