忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

VBA ペイント起動して画面をプリントスクリーンで貼り付ける

VBAで コマンドボタンを押したタイミングで ペイント起動し 画面をprintscreenプリントスクリーンで貼り付ける。

まず 標準モジュールを追加し、標準モジュール内で宣言。



Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)



コマンドボタンを押したら、画面をコピーして張り付けるコード。



Private Sub CommandButton1_Click()

Const VK_PrintScrn = &H2C '[PrintScrn]指定


Const KEYEVENT_EXTENDED_KEY = &H1 'キー押す
Const KEYEVENT_UP = &H2 'キー放す

'[PrintScrn] + キー押す
keybd_event VK_PrintScrn, 0, KEYEVENT_EXTENDED_KEY, 0
'[PrintScrn] + キー放す
keybd_event VK_PrintScrn, 0, KEYEVENT_EXTENDED_KEY Or KEYEVENT_UP, 0

Application.Wait Now + TimeSerial(0, 0, 2) '2秒待つ


paint = Shell("Mspaint.exe", vbNormalFocus) 'ペイント起動

Application.Wait Now + TimeSerial(0, 0, 2) '2秒待つ

'[CONTROL] キー押す
keybd_event vbKeyControl, 0, KEYEVENT_EXTENDED_KEY, 0
'[V]  キー押す
keybd_event vbKeyV, 0, KEYEVENT_EXTENDED_KEY, 0
'[V]  キー放す
keybd_event vbKeyV, 0, KEYEVENT_EXTENDED_KEY Or KEYEVENT_UP, 0
'[CONTROL] キー放す
keybd_event vbKeyControl, 0, KEYEVENT_EXTENDED_KEY Or KEYEVENT_UP, 0




End Sub



注意1 API を使う。
注意2 押したボタンは放す。KEYEVENT_UP
注意3 ペイント起動まで2秒まつ。

PR