3

私が書いたコードが印刷画面を取り、それをクリップボードにコピーするアドインパワーポイントに取り組んでいます。このコピーした画像をパワーポイントのスライドに貼り付けたいのですが。また、私が直面しているもう1つのことは、「実行」をクリックすると5秒後に印刷画面を取るタイマーを追加したいときに、「実行」をクリックするたびに画像をクリップボードに遅滞なくコピーすることです。以下はコードです。

    Option Explicit

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

Private Declare Function GetVersionExA Lib "kernel32" _
      (lpVersionInformation As OSVERSIONINFO) As Integer

Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
End Type

Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_SNAPSHOT = &H2C
Private Const VK_MENU = &H12

Dim blnAboveVer4 As Boolean

Private Sub Command1_Click()
    If blnAboveVer4 Then
        keybd_event VK_SNAPSHOT, 0, 0, 0
    Else
        keybd_event VK_SNAPSHOT, 1, 0, 0
    End If
End Sub

Private Sub Command2_Click()
    If blnAboveVer4 Then
        keybd_event VK_SNAPSHOT, 1, 0, 0
    Else
        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
    End If
End Sub
4

3 に答える 3

1

あなたの投稿には、実際には以下に回答する2つの質問が含まれています。

1)。キャプチャしたスクリーンショット イメージをクリップボード メモリから PowerPoint スライドに貼り付けるには (たとえば、最初の空白のスライドを追加する場合)、次のステートメントを使用します。

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

このトピックの詳細については、https://social.msdn.microsoft.com/Forums/en-US/006bdb95-1889-4a3a-8eb9-fc7b2af88805/paste-a-picture-from-clipboard-to-slide-how-を参照してください。 c

2)。5 秒の遅延を追加するには、対象のマクロに挿入された次のステートメントを使用します。

Application.Wait(Now + TimeValue("00:00:05"))

または、関数を使用できますがSleep(5000)、宣言が必要になります。

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

これが役立つことを願っています。よろしくお願いします、

于 2014-12-14T18:44:48.527 に答える