クリップボードのデータを削除

クリップボードに格納されているデータを削除する。

VBAでクリップボードに格納されているデータを削除するにはAPIを利用して削除することができます。

 ●クリップボードの削除

#If VBA7 And Win64 Then
    Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As Long
    Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
    Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
#Else
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As Long
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
#End If

'*******************************************************************
' クリップボードのデータを削除
'*******************************************************************
Sub ClearClipboard()
    Dim lRetVal As Long
    
    'クリップボードにデータがある場合は削除
    If Application.ClipboardFormats(1) <> -1 Then
        
        'クリップボードを開く
        If OpenClipboard(0&) = 0 Then
            Debug.Print "(Error)クリップボードが開けません。" & _
                        "他アプリ等が利用している可能性があります。"
           Exit Sub
        End If
        
        'クリップボードの内容を消去
        lRetVal = EmptyClipboard
        
        'クリップボードを閉じる
        lRetVal = CloseClipboard
    End If

End Sub