在vba powerpoint中按键时调用Sub

时间:2014-12-17 10:09:50

标签: vba keyboard-shortcuts powerpoint-vba

此代码捕获活动窗口并将其粘贴到电源点幻灯片上,方法是通过调用sub PrintScreen来粘贴数字屏幕截图,之后需要5秒钟才能捕获活动窗口的屏幕。虽然我希望每当我按下像'F7或F3等'的特定键时,它应该采用打印屏幕而不是等待5秒钟。我只想按下键,然后调用sub,在其中指定打印和粘贴以及其他功能。

Sub Screen_Capture_VBA()
 Dim Sec4 As Date
 MsgBox "Note: Three seconds after you click OK " & _
 "the active window will be copied to the clipboard."
 Sec4 = DateAdd("s", 4, Now)
 myValue = InputBox("Give me no of screen shots you want to capture")
 For I = 1 To myValue
 PrintScreen
 Next I
End Sub

这是我的打印屏幕子。

Sub PrintScreen()

Sleep 5000
keybd_event VK_MENU, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0

ActivePresentation.Slides.Add 1, ppLayoutBlank
ActivePresentation.Slides(1).Shapes.Paste

End Sub

2 个答案:

答案 0 :(得分:6)

PowerPoint不支持为宏like in Excel指定键盘快捷键。您可以购买第三方应用,例如OfficeOne Shortcut Manager,但更简单的解决方法是将宏添加到快速访问工具栏。

  1. 点击QAT下拉箭头(下方突出显示为黄色)
  2. 点击More Commands
  3. 在下拉列表Choose commands from中选择
  4. 点击 YourPresentationName!PrintScreen
  5. 点击Add >>按钮
  6. 点击OK
  7. enter image description here

    然后你可以使用 alt + 1 (或QAT指定的任何数字)来执行 PrintScreen()。按 alt 键一次,查看PowerPoint为您的宏指定的快捷方式号码。

    enter image description here

答案 1 :(得分:3)

由于缺乏功能,powerpoint不支持onkey。 因此,尝试在 C ++中编写代码并为其分配密钥并执行代码,例如将 F7 分配给 ALT + PrintScrn 即,当你按F7时,它应该截取你当前窗口的截图。 这是shell执行的代码

Sub PrintScreen()
Dim sFullPathToExecutable As String
sFullPathToExecutable = "C:\Users\abc.exe"
Shell sFullPathToExecutable
End Sub