在 Excel 的 VBA 中,雖然沒有直接的命令來清空剪貼簿,但可以透過創建一個「無」的 `DataObject` 或使用 `Application.CutCopyMode = False` 來達成這個效果。以下是使用 VBA 來清空剪貼簿的一個簡單範例:
### 方法一:使用 `Application.CutCopyMode`
這是一種快速、簡單的方式來取消剪貼模式,但不會完全清空剪貼簿的內容:
```vba
Sub 清空剪貼簿()
Application.CutCopyMode = False
End Sub
DataObject
清空剪貼簿這種方法會完全清空系統的剪貼簿。需要引用 Microsoft Forms 2.0 Object Library:
Alt + F11
)。Sub 清空剪貼簿()
Dim objData As New MSForms.DataObject
objData.SetText "" ' 將剪貼簿設為空字串
objData.PutInClipboard ' 將空字串放入剪貼簿
End Sub
這是一個更進階的方式,透過 Windows API 可以直接清空剪貼簿:
#If VBA7 Then
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As Long
Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
#Else
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
#End If
Sub 清空剪貼簿()
OpenClipboard 0
EmptyClipboard
CloseClipboard
End Sub
將以上任一種程式碼貼入 VBA 編輯器中,並可在 Excel 裡透過快捷鍵或按鈕設置來一鍵執行此宏,即可清空剪貼簿。
資料來源chatgpt