У меня есть поле текстовой формы в защищенном документе Word 2011 для Mac, которое запускает макрос при выходе. Макрос заполняет форму различной информацией, но не зависит от теста, введенного в это конкретное поле формы. У меня есть две идеи по решению этой проблемы. Первый вариант был бы лучшим, если бы его можно было сделать, в противном случае второй вариант был бы разумным обходным путем. Может кто-нибудь помочь найти макрос, который выполняет одно из следующих действий?
а. Предотвратит ли запуск макроса во второй раз, если поле формы снова будет введено и отредактировано?
б. Проверяет при входе в поле формы, есть ли уже текст в поле, и если есть, предотвращает редактирование и переходит к следующему полю формы без повторного запуска макроса при выходе?
Я новичок в VBA, но думаю, что знаю основы. Вот что я придумал для б. решение, но оно не работает.
Макрос, который проверяет, есть ли текст в именах полей формы "text9", если есть, то снимает защиту, переходит в закладку "text10" и защищает форму. в противном случае позвольте пользователю заполнить поле формы и запустить макрос при выходе.
Sub TestSkipField()
'
' TestSkipField Macro
'
'
With GetCurrentFF
If Len(.Result) = Null Then
End If
Else
If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.UnProtect
End If
Selection.GoTo What:=wdGoToBookmark, Name:="Text10"
With ActiveDocument.Bookmarks
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End If
End With
End Sub