Получить имя поля формы, которое вызывает макрос при входе - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть несколько объектов поля формы, которые вызывают макрос при входе.

Как получить имя поля формы, которое вызвало макрос? Что-то вроде application.caller, но для Word.

1 Ответ

0 голосов
/ 08 ноября 2019

Предполагая, что вы подразумеваете «Устаревшее поле формы» в самом документе, если вы установили «Запустить макрос при вводе» в свойствах поля формы на подходящую подпрограмму, вы можете использовать код, подобный следующему:

If Selection.FormFields.Count = 1 Then
  ' This deals with dropdown etc. but not FORMTEXT fields
  Debug.Print Selection.FormFields(1).Name
ElseIf Selection.FormFields.Count = 0 And Selection.Bookmarks.Count > 0 Then
  Debug.Print Selection.Bookmarks(Selection.Bookmarks.Count).Name
End If

На самом деле FormField не обязательно должен иметь имя, в этом случае у него не будет закладки, поэтому вам может потребоваться это разрешить.

Если вы подразумеваете какое-либо поле другого типа, например поле пользовательской формы VBA, поле Content Control или ActiveX в документе, измените свой вопрос, чтобы это было понятно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...