Как получить значение выпадающего меню в Microsoft Word - PullRequest
1 голос
/ 26 июня 2009

У меня есть документ Microsoft Word с раскрывающимся меню. Я пытаюсь написать макрос, который получает значение раскрывающегося списка и выполняет вычисления. Как я могу получить значение раскрывающегося списка?

1 Ответ

1 голос
/ 26 июня 2009

Во-первых, вы можете получить ссылку на раскрывающийся список либо по названию, которое вы ему дали (поле «Закладка» в поле «Свойства»), либо по номеру в последовательности добавленных вами полей.

Затем вы используете свойство Result для отображения текущего выбранного значения.

Я создал пустой документ с двумя выпадающими списками (покажите панель инструментов «Формы», затем нажмите кнопку, чтобы вставить этот элемент управления в положение курсора):

ColorDropdown
  red
  green
  blue

SizeDropdown
  small
  medium
  large

тогда я написал несколько тестовых процедур:

Sub ListDropDowns()
  Dim doc As Document, f As FormField
  Set doc = ActiveDocument

  For Each f In doc.FormFields
    Say f.Name & " = " & f.Result
  Next
End Sub

Sub ShowChosenColor()
  Dim f As FormField
  Set f = ActiveDocument.FormFields("ColorDropdown")
  Say "color = " & f.Result
End Sub

Sub Say(s As String)
  Debug.Print s
End Sub

это результаты ListDropDowns и ShowChosenColor из окна Immediate:

ColorDropdown = blue
SizeDropdown = large

color = blue

еще немного Немедленное тестирование окна:

set doc = ActiveDocument

? doc.FormFields(1).Name
ColorDropdown

? doc.FormFields(2).Name
SizeDropdown

? doc.FormFields(2).Result
large


sName = doc.FormFields(2).Name
? sName
SizeDropdown

sSize = doc.FormFields(sName).Result
? sSize
large
...