Symptomen

  • Een expert heeft een aantal handelingen geautomatiseerd: een werkblad of een document wordt aangepast zonder dat de gebruiker de wijzigingen hoeft aan te brengen. Echter aan het einde van het proces, tijdens het opslaan van de veranderingen, verschijnt een dialoogvenster:

Gebruikers ervaren het als hinderlijk dat ze op Enter moeten drukken. Kan deze handeling niet worden geautomatiseerd?

Remedie 1

  1. Wilt u een programma automatisch laten reageren op standaard dialoogvensters, zoals in het eerste symptoom is beschreven, neem dan in het begin van het programma het volgende statement op:

    Application.DisplayAlerts = False

    Als laatste statement in hetzelfde programma typt u:

    Application.DisplayAlerts = True

  2. Start het programma. U zult zien dat het dialoogvenster niet meer verschijnt.

Verdieping

Let wel: het programma kiest er nu altijd voor het programma voort te zetten op de meest logische manier. Bevat het programma de opdracht een document of werkmap op te slaan, dan wordt er altijd opgeslagen. Als er al een bestand met dezelfde naam bestaat, wordt dit dus overschreven.

Tips

  • “De meest logische manier” is niet altijd gemakkelijk herkenbaar. U komt bedrogen uit als u zou denken dat DisplayAlerts = False er altijd voor zorgt dat de standaardknop in het dialoogvenster wordt ingedrukt (de knop die de focus heeft, herkenbaar aan de stoppeltjes rond de knoptekst.). In de hierboven afgebeelde figuur wordt Ja gekozen, daar waar Nee de focus heeft!
  • Wilt u toch een andere knop dan de ‘meest logische’ knop in een dialoogvenster laten kiezen, gebruik dan een methode als SendKeys.

 Zie ook

Kan een programma het toetsenbord bedienen?