ich habe eine userform von dieser möchte ich der tastenkombi ein Hardcopy machen.
Klappt aber nicht so wie ich es mir vorstelle.
Ich habe auf der Userform 1 Button.Hinter dem steht dieser Code:
Private Sub CommandButton1_Click()
DoEvents
' Button "ALT" wird gedrückt
Call keybd_event(VK_MENU, 0, 0, 0)
' Button "Druck" wird gedrückt
Call keybd_event(VK_SNAPSHOT, 0, 0, 0)
' Button werden wieder losgelassen
Call keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0)
Me.Hide
Unload Me
End Sub
Ganz am Anfang im Modul habe ich noch das stehen:
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByValdwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2
'Hier die Taste die geklickt wird !
Const VK_MENU = &H12 ' Alt taste
Private Const VK_SNAPSHOT = &H2C 'Drucken/S-Abf Taste
Wenn ich jetzt den Button klicke erscheint mir in der zwiaschenablage ein hardcopy von Excel und nicht so wie ich es will nur von der userform selbst.
Wenn ich ie Code so umstelle klappt es so wie ich es möchte, nur dann arbeitet mein Makro nicht weiter.
Wo ist mein fehler ?
Hier der code der es richtig macht: (Der Unterschied ist nur der Exit sub)
Private Sub CommandButton1_Click()
DoEvents
' Button "ALT" wird gedrückt
Call keybd_event(VK_MENU, 0, 0, 0)
' Button "Druck" wird gedrückt
Call keybd_event(VK_SNAPSHOT, 0, 0, 0)
' Button werden wieder losgelassen
Call keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0)
exit sub
Me.Hide
Unload Me
End Sub