Diskuze: VBA AZ-Kvíz
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
DoEvents dovolí v sešitu "pracovat"
Funkce GetAsyncKeyState odychytává stisknuté klávesy a vrací True v
případě shody.
Private Declare Function GetAsyncKeyState Lib "user32" _
(ByVal vKey As Long) As Integer
Private Const VK_F9 = &H78
Sub Makro1()
WaitUntilF9Key
End Sub
Sub WaitUntilF9Key()
cas = Now
start_cas = cas
Do Until GetAsyncKeyState(VK_F9)
DoEvents
If Now > cas + TimeSerial(0, 0, 1) Then
cas = Now
start
End If
Loop
ukoncit = True
MsgBox "Vybrane policko " & Cells(1, 1).Value - 1 & "!"
End Sub
Sub start()
poradi = Cells(1, 1).Value
If poradi > 19 Then
Cells(1, 1).Value = 1
poradi = 1
End If
List1.Shapes(poradi).Fill.ForeColor.RGB = RGB(237, 125, 49)
If poradi > 1 Then
List1.Shapes(poradi - 1).Fill.ForeColor.RGB = RGB(0, 191, 255)
Else
List1.Shapes(19).Fill.ForeColor.RGB = RGB(0, 191, 255)
End If
Cells(1, 1).Value = poradi + 1
End Sub
Díky! Jen to po mně chce GetAsyncKeyState upravit do 64 bit, lze to nějak převést?
Zkus tohle - já mám 32bit Excel, tak jsem to neřešil.
#If VBA7 Then
Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As LongPtr, ByVal nIndex As Long) As Long
#Else
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long
#End If
Už to funguje. Chápu správně, že stisknutí F9 mi program pozastaví a já můžu něco předělat? Sub start() jsem přiřadil Commandbuttonu, ale jelikož je pokaždé nutné kliknout, aby se pole přebarvila, tak potom F9 postrádá smysl. Je to tak nebo to nechápu správně?
Zobrazeno 5 zpráv z 5.