2013-08-01 52 views
0

使用案例:傳統下拉框的值更改後,如何更新標籤?

  1. 用戶更改舊的下拉型窗體域,從一件事到另一個值。 (實際上,他將某個優先級分配給某個事物,並且我們有低,中,高或緊急...,每個都有一個非常明確和清晰的定義。)
  2. priorityDefinitionLabel(標籤位於下拉菜單的右側)下拉框)被更新以顯示所做選擇的定義,以便讓用戶通過閱讀定義並確定它是否適用於他的問題來確保他做出正確的選擇。

我的問題是,我似乎無法做一些基本的這樣:

Private Sub priorityDropDownBox_Changed() 
    updatePriorityLabel() 
End Sub 

看來,如果它在VBA是一個「傳統型窗體域」我不能訪問任何形式的場代碼...但是,如果我在頁面上拋出一個ActiveX內容控件,我可以在代碼中訪問它。

有什麼方法可以訪問/尋址該下拉框嗎?我的整個Word表單使用舊錶單字段和下拉菜單,所以我希望答案是肯定的,否則我可能需要將所有字段和下拉列表切換到ActiveX內容控件。

謝謝!

回答

1

傳統控件是Selection.FormFields集合的成員。沒有事件,最近的等價物是EntryMacroExitMacro屬性。

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不上選擇或更改,下拉項目,但Tab鍵從控制離開時運行。

關於這些傳統控件有一些MS information here