As Patrick pointed out, you should move the Set clipboard = Nothing
below the loop. Also, there is a typo, as it is currently written as set clipboad = Nothing
.
In addition, insert DoEvents
after you clear your clipboard. This will make sure that the operating system has time to clear it before you read it again.
Your final code should look somehow like this:
Dim clipboard As MSForms.DataObject
Dim strContents As String
Set clipboard = New MSForms.DataObject
Do While True
clipboard.GetFromClipboard
strContents = clipboard.GetText
clipboard.Clear
DoEvents
Myfunc(strContents)
ThisApplication.StatusBarText = strContents 'debug
If Left(strContents, 1) = 9 Then Exit Sub 'end condition
sleep 100
Loop
Set clipboard = Nothing