Yeah you could add a timer and set the interval to something small. 1000 = 1 second, so 250 might be fast enough. You also might want to make a function to determine if the button has been clicked rather than if the button is just being held (which is what that KeyDown function checks).
You could just check like this:
Private Sub Timer1_Timer()
'Check to see if the key is down, and the key wasnt down before
If KeyDown(vbKeyF12) And eftwelve = False Then
eftwelve = True
'Do whatever you want to happen when the key is pressed
End If
If Not KeyDown(vbKeyF12) Then
eftwelve = False
End If
End Sub