GetText를 사용하여 클립보드에서 텍스트 가져오기 - 빈 클립보드에서 오류 방지
클립보드에서 텍스트를 가져오기 위해 이와 같은 코드를 사용합니다.
Dim DataObj As New MSForms.DataObject
DataObj.GetFromClipboard
myString = DataObj.GetText
오류 처리를 사용하여 클립보드가 비어 있는 경우를 넘기고 오류 트래핑을 처리되지 않은 오류 발생 시 중단으로 설정하면 모든 것이 정상입니다.
그러나 관련이 없는 이유로 오류 트래핑을 모든 오류에서 중단으로 설정하려고 하는데, 이 경우 오류가 발생합니다.DataObj.GetText
빈 클립보드를 찾을 때 사용합니다.빈 클립보드를 처리하지 않기 위해 업스트림에 추가로 적용할 수 있는 테스트 종류가 있습니까?
다음을 사용하여 오류 처리On Error GoTo
여기에 표시된 것처럼:
Sub GetClipBoardText()
Dim DataObj As MSForms.DataObject
Set DataObj = New MsForms.DataObject '<~~ Amended as per jp's suggestion
On Error GoTo Whoa
'~~> Get data from the clipboard.
DataObj.GetFromClipboard
'~~> Get clipboard contents
myString = DataObj.GetText(1)
MsgBox myString
Exit Sub
Whoa:
If Err <> 0 Then MsgBox "Data on clipboard is not text or is empty"
End Sub
빈 클립보드도 처리됩니다.
NB: 코드가 작동하려면 "Microsoft Forms 2.0 Object Library"에 대한 참조가 있어야 합니다(이 파일은 다음 위치에서 찾을 수 있습니다).C:\windows\system32\FM20.dll
32비트 시스템 또는C:\Windows\sysWOW64\FM20.dll
64비트 시스템의 경우), 그렇지 않으면 "사용자 정의 유형이 정의되지 않음" 오류가 표시됩니다.
아래 코드를 사용하여 위 코드를 테스트하기 전에 클립보드를 비울 수 있습니다.모듈에 붙여주세요.
Private Declare Function OpenClipboard Lib "User32.dll" _
(ByVal hWndNewOwner As Long) As Long
Private Declare Function EmptyClipboard Lib "User32.dll" () As Long
Private Declare Function CloseClipboard Lib "User32.dll" () As Long
Public Sub ClearClipboard()
Dim Ret
Ret = OpenClipboard(0&)
If Ret <> 0 Then Ret = EmptyClipboard
CloseClipboard
End Sub
편집: 다음 코드를 사용하여 클립보드가 비어 있는지 확인할 수도 있습니다.
Private Declare Function CountClipboardFormats Lib "user32" () As Long
Sub Sample()
If (CountClipboardFormats() = 0) = True Then
MsgBox "Clipboard is empty"
Else
MsgBox "Clipboard is not empty"
End If
End Sub
디버깅을 위해 다음 코드를 b4에 추가합니다.나는 그 시험 이후에 그 오류가 사라졌습니다.이상하지만 어떻게든 작동합니다(Excel 2010)
myString = DataObj.GetText(1)
MsgBox myString
언급URL : https://stackoverflow.com/questions/9022245/get-text-from-clipboard-using-gettext-avoid-error-on-empty-clipboard
'source' 카테고리의 다른 글
Oracle: DBMS_UTILITY.EXEC_DDL_STATION 대 즉시 실행 (0) | 2023.06.10 |
---|---|
모든 그룹을 선택하고 사용자가 그룹에 있는지 확인합니다. (0) | 2023.06.10 |
Ionic에서 알림 상자 외부를 클릭할 때 알림 상자를 닫지 않는 방법 (0) | 2023.06.10 |
표시된 데이터와 축 사이의 공간 제거 (0) | 2023.06.10 |
WPF 전역 글꼴 크기 (0) | 2023.06.06 |