Hvordan oppdage brukerinaktivitet i en Excel-arbeidsbok

stemmer
2

Jeg ønsker å ta en handling i en Excel-arbeidsbok makro etter en periode med inaktivitet (hjem / beskytte noen regneark). Hva er den beste / enkleste måten å oppnå dette?

Jeg er forutsatt at jeg skal bruke Application.OnTimetil periodisk sjekke om brukeren har vært aktiv. Men hva hendelser skal jeg håndtere for å se om brukeren var aktiv (dvs. har gjør noe - hva som helst - med arbeidsbok)?

Avklaring: Jeg ønsker å registrere alle aktiviteter, ikke bare endringer. Dvs. inkludert museklikk, velge, kopiering, navigere med tastaturet, endre regneark, ...

Jeg antar at når en UI hendelse skjer som representerer brukeraktivitet, vil jeg sette en variabel slik:

LastActivityTime = Now

og makro drevet av Application.OnTimevil sjekke denne variabelen for å se om brukeren har vært aktiv i det siste. Hvilke hendelser (unntatt SheetChange) ville jeg trenger for å håndtere for å sette denne variabelen? Jeg hadde slags håpet det ville være KeyUpog MouseUphendelser, disse to ville trolig ha vært nok.

Oppdatering: Jeg har implementert dette ved håndtering Workbook_SheetActivate, Workbook_SheetSelectionChangeog Workbook_WindowActivate. Realistisk dette er sannsynligvis nok.

Publisert på 04/10/2008 klokken 11:46
kilden bruker
På andre språk...                            


3 svar

stemmer
0

En enkel måte er å sammenligne innholdet i arbeidsboken med den siste gangen du sjekke. Jeg tror kombinere dette med Application.OnTime vil løse din bekymring.

Svarte 04/10/2008 kl. 12:00
kilden bruker

stemmer
1

Jeg ser bare to løsninger - enten håndtere evary enkelt tilfelle Application objektet har eller bruk GetLastInputInfo funksjon.

Svarte 04/10/2008 kl. 12:16
kilden bruker

stemmer
2

Jeg har implementert dette ved håndtering Workbook_SheetActivate, Workbook_SheetSelectionChange og Workbook_WindowActivate. Realistisk dette er sannsynligvis nok.

Svarte 25/08/2009 kl. 09:17
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more