Tiem no mums, kuriem ir dziļi prāts VB.NET, ceļojums atpakaļ uz VB6 var būt mulsinošs ceļojums. Taimera izmantošana VB6 ir tāda. Tajā pašā laikā jauniem VBA makro lietotājiem nav acīmredzams, ka procesoram pievieno termiņus.
Taimeri iesācējiem
Kodēšana Word VBA makro, lai automātiski nokārtotu pārbaudi, kas tika uzrakstīta programmā Word, ir tipisks taimera lietošanas iemesls. Vēl viens izplatīts iemesls ir redzēt, cik daudz laika aizņem dažādas koda daļas, lai jūs varētu strādāt, lai optimizētu lēnās sadaļas. Dažreiz jūs varētu vēlēties noskaidrot, vai lietojumprogrammā kaut kas nenotiek, ja šķiet, ka dators vienkārši sēž dīkstāvē, kas var būt drošības problēma. Taimeri to var izdarīt.
Sāciet taimeri
Jūs startējat taimeri, kodējot OnTime paziņojumu. Šis paziņojums ir ieviests Word un Excel, taču tam ir atšķirīga sintakse atkarībā no tā, kuru lietojat. Word sintakse ir:
izteiksme. OnTime (kad, vārds, pielaide)
Excel sintakse izskatās šādi:
izteiksme. OnTime (agrākais laiks, procedūra, pēdējais laiks, grafiks)
Abiem ir pirmais un otrais parametrs. Otrais parametrs ir citas makro nosaukums, kas darbojas, kad ir sasniegts laiks pirmajā parametrā. Faktiski šī paziņojuma kodēšana ir tāda pati kā notikuma apakšprogrammas izveidošana VB6 vai VB.NET izteiksmē. Notikums sasniedz laiku pirmajā parametrā. Pasākuma apakšprogramma ir otrais parametrs.
Tas atšķiras no tā, kā tas tiek kodēts VB6 vai VB.NET. Pirmkārt, makro, kas nosaukts otrajā parametrā, var būt jebkurā pieejamā kodā. Word dokumentā Microsoft iesaka to ievietot parastā dokumenta veidnē. Ja ievietojat to citā modulī, Microsoft iesaka izmantot pilnu ceļu: Projekts. Modulis. Makro.
Izteiciens parasti ir lietojumprogrammas objekts. Word un Excel dokumentācijā teikts, ka trešais parametrs var atcelt notikuma makro izpildi, ja dialogs vai kāds cits process neļauj tam darboties noteiktā laikā. Programmā Excel jūs varat ieplānot jaunu laiku gadījumam, ja tas notiks.
Kodējiet laika notikuma makro
Šis kods programmā Word ir paredzēts administratoram, kurš vēlas parādīt paziņojumu par pārbaudes laika beigām un izdrukāt testa rezultātu.
Publisks apakštests TestOnTime ()
Atkļūdošana. Drukāt "Signāls izslēgsies 10 sekundēs!"
Atkļūdošana. Drukāt (“Before OnTime:” un tagad)
alertTime = Tagad + TimeValue ("00:00:10")
Pieteikums. OnTime alertTime, “EventMacro”
Atkļūdošana. Drukāt (“After OnTime:” un tagad)
Beigas apakš
Sub EventMacro ()
Atkļūdošana. Drukāt ("Notikuma makro izpildīšana:" un tagad)
Beigas apakš
Rezultātā tiešajā logā tiek parādīts šāds saturs:
Signāls izslēgsies pēc 10 sekundēm!
Pirms OnTime: 2000.12.25. 7:41:23
Pēc OnTime: 2000.12.25. 7:41:23
Notikuma makro izpildīšana: 2010.02.27. 7:41:33
Iespēja citām Office lietotnēm
Citas Office lietojumprogrammas neievieš OnTime. Tiem, jums ir vairākas izvēles. Pirmkārt, jūs varat izmantot funkciju Taimeris, kas vienkārši atgriež sekunžu skaitu kopš pusnakts datorā un veic pats savu matemātiku, vai arī varat izmantot Windows API zvanus. Windows API zvanu izmantošanai ir tā priekšrocība, ka tā ir precīzāka nekā taimeris. Tālāk ir aprakstīta Microsoft ieteiktā rutīna, kas veic triku:
Privātās deklarēšanas funkcija getFrequency Lib "kernel32" _
Alias "QueryPerformanceFrequency" (cyFrequency as Currency) tik ilgi
Privātās deklarēšanas funkcija getTickCount Lib "kernel32" _
Alias "QueryPerformanceCounter" (cyTickCount As Currency) tik ilgi
Sub TestTimeAPICalls ()
Dim dTime kā dubultā
dTime = MicroTimer
Dim StartTime kā vienreizējs
StartTime = Taimeris
Ja i = 1 līdz 10000000
Dim j Kā dubultā
j = Sqr (i)
Nākamais
Atkļūdošana. Drukāt ("Paņemtais laiks bija:" & MicroTimer - dTime)
Beigas apakš
Funkcija MicroTimer () kā dubultā
'
'Atgriež sekundes.
'
Dim cyTicks1 kā valūta
Statiskā cyFrequency kā valūta
'
MicroTimer = 0
'Iegūstiet frekvenci.
Ja cyFrequency = 0, tad getFrequency cyFrequency
'Iegūstiet ērces.
getTickCount cyTicks1
'Sekundēs
Ja cyFrequency Tad MicroTimer = cyTicks1 / cyFrequency
Beigu funkcija