Есть много способов сделать что-нибудь в VBA, но, глядя на предоставленные ответы, Андре кажется мне наиболее эффективным, а также способ, которым я решаю этот вопрос
Для каждого ctl в Me.Controls
' Init for error case
isHyperlink = False
On Error Resume Next
isHyperlink = (Len(ctl.HyperlinkAddress) > 0)
On Error Goto ErrHandler
If isHyperlink Then
' ...
End If
Далее ctl
Установка значения по умолчанию false и отключение проверки ошибок для одной команды означает, что вы выполняете одну проверку только для элемента управления, в случае неудачи значение false уже установлено, в противном случае оно станет истинным для следующего блока кода. Не забудьте снова включить проверку ошибок.
Циклическое переключение всех свойств, как предлагал Густав, будет работать, но есть так много свойств для циклического переключения, поэтому столько проверок = больше времени для выполнения, к тому времени, когда вы умножите это на все элементы управления в форме, окажется большое время Waster, особенно если имеется много элементов управления.