Oppdager en dialogboks for oppstart

December 14  by Eliza

Thomas har en makro som utfører ulike funksjoner ved tidsintervaller. Noen av disse funksjonene bør ikke utføres hvis en dialogboks er åpen på skjermen, fordi du prøver å utføre dem vil føre til en feil i funksjonene. Han lurer på om det er noen måte, innenfor makro, for å oppdage om en dialogboks-alle dialogboksen-er åpen. Thomas vil heller oppdage den åpne dialogboksen stedet avtale med en generert feil.

Kanskje den eneste måten å forsøke å gjøre dette på er å bruke FindWindow, som faktisk er en del av Windows API. Dens formål er å hente et håndtak til en bestemt åpent vindu. (En dialogboks er ingenting, men et åpent vindu, og hver dialogboks har et navn.) Denne tilnærmingen vil ikke fortelle deg om noen dialogboksen er åpen, men det vil fortelle deg om en bestemt dialogboks er åpen.

Her er en rask eksempel for å vise hvordan FindWindow funksjonen kan brukes:

Erklærer Funksjon FindWindow Lib "User32" Alias ​​"FindWindowA" _
(ByVal wClassName Som Any, ByVal wWindowName As String) så lenge

Sub testDialogOpen ()
Dim wHandle Som Long
Dim wName As String

wName = "Søk og erstatt"
wHandle = FindWindow (0 &, wName)
Hvis wHandle = 0 Then
MsgBox "Dialog vindu er ikke åpen"
Else
MsgBox "Dialog vinduet er åpent"
End If
End Sub

Merk at FindWindow funksjonen må bli erklært utenfor ditt VBA prosedyre. Så, innen prosedyren, må du angi navnet på den dialogboksen du ønsker å finne ut om. Dette er navnet som vises i tittellinjen for dialogboksen, og FindWindow funksjon er små bokstaver. Returverdien for FindWindow vil være et håndtak for dialogboksen, hvis det er åpent. Hvis det ikke er åpent, så returnerer funksjonen en 0.

Husk også at dialogbokser kan være av to typer: modal og ikke-modal. Hvis en bestemt dialogboks er modal, så det må avvises før eventuelle andre tiltak kan tas på systemet. Det er lurt å gjøre omfattende testing med dialogboksene ved punktet, som du kan få forskjellig ytelse fra makro avhengig av om en åpen dialogboks er modal eller ikke.

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (12355) gjelder for Microsoft Word 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Word (Word 2007 og senere) her: Oppdager en dialogboks for oppstart.