Проверьте, является ли форма определенной формой, т.е. кнопкой - PullRequest
0 голосов
/ 24 октября 2018

У меня есть рабочая тетрадь с множеством объектов.Формы содержат текст.Я использую скрипт для эмуляции текстового поиска.Я добавил две кнопки - одну для «поиска» (для запуска FindInShape2) и одну для «очистки» форматирования, примененного поиском (то есть для запуска ResetFont).(Я должен был добавить On Error Resume Next только внутри каждого цикла).Я отформатировал текст на этих кнопках.Моя проблема в том, что «чистый» скрипт сбрасывает форматирование кнопок.

Чтобы решить эту проблему, я ищу тест, который логически «если текущая фигура не является кнопкой».

Имя локальной переменной для объекта формы: shp.Ключевая строка, заполняющая это:

For Each shp In ActiveSheet.Shapes

Мне нужно что-то вроде

if shp.name not like 'Button%'

Обратите внимание, текст на дисплее на кнопках «найти» и «очистить», но когда я выбираюКнопкам они называются «Кнопка 1» и «Кнопка 2».

Есть предложения?Открыт для других методов решения.

1 Ответ

0 голосов
/ 24 октября 2018

Комментарий Marucciboy2 указал мне путь к ответу.

Код, который работает:

If shp.Type <> 8 Then

В дополнение к документам в свойстве Shape Type , документы по перечислению msoShapeType отображают значения типов (т.е. числа) с описаниями встречающихся типов фигур.

В этом случае тип 8 соответствует кнопке управления.

В качестве бонуса нижеприведенное (грубо) агрегирует типы фигур, встречающиеся при циклическом просмотре ActiveSheet.Shapes:

Dim sShapeTypes As String

For Each shp In ActiveSheet.Shapes
    sShapeTypes = sShapeTypes & ", " & shp.Type
Next

MsgBox sShapeTypes

Если у вас много фигур, в окне сообщения не будет местадлинное сообщение.Вы можете использовать оператор If, чтобы исключить некоторые из них, которые отображаются в окне сообщения.

If shp.Type <> 17 Then ' Ignores msoTextBox
    sShapeTypes = sShapeTypes & ", " & shp.Type
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...