Afsløring en Open dialogboksen

Thomas har en makro, der udfører forskellige funktioner i tidsintervaller. Nogle af disse funktioner skal ikke udføres, hvis en dialogboks er åben på skærmen, fordi forsøger at udføre dem vil forårsage en fejl i funktionerne. Han undrer sig, hvis der er et stykke vej, inden makroen, for at opdage, hvis en dialogboks-enhver dialogboks-aktuelt er åben. Thomas vil hellere opdage dialogboksen Åbn i stedet aftale med en genereret fejl.

Måske er den eneste måde at forsøge at gøre dette på er at bruge FindWindow, der er faktisk en del af Windows API. Dens formål er at hente et håndtag til en bestemt åbent vindue. (En dialogboks er intet andet end et åbent vindue, og hver dialogboks har et navn.) Denne fremgangsmåde vil ikke fortælle dig, hvis nogen dialogboks er åben, men det vil fortælle dig, hvis en bestemt dialogboks er åben.

Her er en hurtig eksempel at vise, hvordan FindWindow funktionen kan bruges:

Erklær Funktion FindWindow Lib "User32" Alias ​​"FindWindowA" _
(ByVal wClassName Som enhver, ByVal wWindowName As String) så længe

Sub testDialogOpen ()
Dim wHandle så længe
Dim wname As String

wname = "Søg og erstat"
wHandle = FindWindow (0 &, wname)
Hvis wHandle = 0 Derefter
MsgBox "Dialog vinduet er ikke åben"
Andet
MsgBox "Dialog vinduet er åbent"
End hvis
End Sub

Bemærk, at brug for FindWindow funktion, der skal erklæres uden for dit VBA procedure. Så inden proceduren, skal du angive navnet på den dialogboks, du ønsker at finde ud af om. Det er det navn, der vises i titellinjen for dialogboksen og FindWindow funktion er tilfældet ufølsom. Afkastet værdi for FindWindow vil være et håndtag til dialogboksen, hvis den er åben. Hvis det ikke er åbent, så returnerer funktionen en 0.

Husk også, at dialogbokse kan være af to typer: modale og ikke-modal. Hvis en bestemt dialogboks er modal, så det må forkastes, før der kan træffes andre foranstaltninger på systemet. Du ønsker at gøre omfattende test med dialogboksene i punkt, da du kan få forskellige resultater fra din makro, alt efter om en åben dialogboks er modal eller ej.

WordTips er din kilde til omkostningseffektiv Microsoft Word træning. (Microsoft Word er det mest populære tekstbehandlingsprogram i verden.) Dette tip (12355) gælder for Microsoft Word 97, 2000, 2002, og 2003. Du kan finde en version af dette tip til menufaner Word (Word 2007 og nyere) her: Afsløring en Open dialogboksen.


© 2021 Zajacperrone.com | Contact us: webmaster# zajacperrone.com