用例:
我的问题是,我似乎无法像这样做基本的事情:
Private Sub priorityDropDownBox_Changed()
updatePriorityLabel()
End Sub
如果它是VBA代码中的“Legacy Form Field”,我似乎无法访问任何表单字段...但是,如果我在页面上抛出ActiveX Content Control,我可以在代码中访问它。
有没有办法访问/解决该下拉框?我的整个Word表单使用遗留的表单字段和下拉列表,所以我希望答案是肯定的,否则我可能需要将所有字段和下拉列表切换到ActiveX内容控件。
谢谢!
答案 0 :(得分:1)
旧版控件是Selection.FormFields
集合的成员。没有事件,最接近的等价物是EntryMacro
和ExitMacro
属性。
Sub Macro2()
Selection.FormFields.Add Range:=Selection.Range, Type:=wdFieldFormDropDown
Selection.PreviousField.Select
With Selection.FormFields(1)
.Name = "Dropdown1"
.EntryMacro = "Macro1"
.ExitMacro = "Macro2"
.Enabled = True
.OwnHelp = False
.HelpText = ""
.OwnStatus = False
.StatusText = ""
End With
Selection.FormFields("Dropdown1").DropDown.ListEntries.Clear
End Sub
ExitMacro
不会在选择或更改下拉项目时运行,而是在远离控件时显示。
有一些关于这些传统控件的MS information here。