1

Можно ли использовать переключатели в Microsoft Word для Mac 2011? Я работаю над формой, которая требует "либо", либо "ответы". Таким образом, флажок будет недостаточно. Я знаю, что они доступны в Windows, но не могу найти вариант в версии для Mac.

1 ответ1

0

Проблема в том, что переключатели в Windows Word являются элементами управления ActiveX, которых нет в Mac Word.

В функции Mac FOrms в Mac Word есть переключатели (см. Меню «Вставка» -> «Объект HTML»), но я не знаю достаточно о них, чтобы помочь, порекомендовать или рекомендовать вам избегать их.

Возможно, самый простой способ получить переключатели на Mac - это создать свою форму, используя пользовательскую форму VBA вместо «онлайн-формы» на поверхности документа.

В прошлом я пытался заставить флажки работать больше как переключатели, используя макрос Exit для проверки состояния и изменения всех полей в "группе". Но проблема в том, что когда вы нажимаете флажок, макрос выхода не обязательно вызывается, поэтому возникает ситуация, когда можно установить несколько флажков в "группе", т.е. они не являются переключателями.

Единственный способ, которым мне удалось это сделать, - это использовать поля MACROBUTTON, несколько закладок и фрагмент VBA. Кнопки не отображаются как обычные поля формы, поэтому пользователь должен щелкнуть их, а не вкладывать их (или дважды щелкнуть, в зависимости от их настроек). Я не использовал это в реальном проекте, т.е. это эксперимент.

Как это устроено.

В качестве эксперимента вставьте некоторые текстовые поля формы в документ.

Для каждого переключателя вставьте поле, подобное этому:

{ MACROBUTTON radiopush O}

или это, чтобы представлять "нажатую" кнопку

{ MACROBUTTON radiopull X}

(Используйте cmd-F9/fn-cmd-F9 для вставки {})

Убедитесь, что нет пробела перед "}"

Я на самом деле использую символ Wingdings 2 153 вместо "O" и символ Wingdings 2 158 вместо "X".

Также вставьте следующие поля:

{ SET pulled "MACROBUTTON radiopush O" }{ SET pushed "MACROBUTTON radiopull X" }

где O и X - это те же символы, которые вы используете в полях MACROBUTTON.

Выберите каждое поле макроклавиш по очереди и вставьте закладку. Используйте первые 4 символа имени закладки, чтобы идентифицировать "Группу", затем используйте оставшуюся часть имени, чтобы уникально идентифицировать кнопку - например, если у вас есть два независимых набора из 3 переключателей, вы можете вызвать их

grp1btn1
grp1btn2
grp1btn3
grp2btn1
grp2btn2
grp2btn3

Выберите все поля и обновите их с помощью F9/fn-F9.

Затем поместите следующий VBA в подходящее место (например, .dotm, к которому прикреплены формы, или сделайте форму .docm и поместите туда VBA).

Sub radiopull()
'MsgBox "pull"
End Sub

Sub radiopush()
'MsgBox "push"
ActiveDocument.Unprotect
strGroup = Left(Selection.Bookmarks(1).Name, 4)
For Each bm In ActiveDocument.Bookmarks
  If Left(bm.Name, 4) = strGroup Then
    If bm.Name = Selection.Bookmarks(1).Name Then
      bm.Range.Fields(1).Code.FormattedText = ActiveDocument.Bookmarks("pushed").Range.FormattedText
     Else
       bm.Range.Fields(1).Code.FormattedText = ActiveDocument.Bookmarks("pulled").Range.FormattedText
    End If
    bm.Range.Fields(1).Update
  End If
Next
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, noreset:=True
End Sub

Затем защитите форму и попробуйте нажать (возможно, вам нужно будет дважды щелкнуть) кнопки.

Если вы начинаете только с кнопок "O", у вас может быть начальное состояние, когда ни одна кнопка не нажата, но после нажатия одной кнопки ее всегда нужно нажимать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .