2014-01-30 99 views
6

我想運行一個宏,當我點擊一個複選框Word 2010如何通過單擊Word 2010複選框來運行VBA宏?

請注意,我既不想「遺留形式」複選框也不是「ActiveX」!他們只能在一些「受保護的文檔模式」下工作,而且看起來很醜,但是我希望在編寫文檔時可以選擇和取消選擇的新選項,以及對我來說更加漂亮的選項。

我知道,與傳統的形式,你可以輸入表單元素和一個離開它時,可以直接把一個宏,您可以在VBA趕上事件像

Sub CheckboxXY_Click() 

但不工作與Word 2010複選框,即使我給他們一個描述和標籤名稱。

重複:這些都是我想用(以防萬一有人會建議我使用舊的)形式:

Word 2010 checkbox

這就是他們的樣子在文檔中(鼠標懸停):

enter image description here

我不能相信我是誰試過這是第一個...

+1

MS還沒有使它容易編程'內容Controls'。但是,您應該[檢查此](http://gregmaxey.mvps.org/word_tip_pages/content_control_custom_events.html)。這應該是一個好的開始。 –

+0

也許是一個循環? Pseudocode: while(!checkbox.checked) { 什麼都不做 } 做點事情 – Mana

回答

3

確保你去到文檔中的VBA項目,然後選擇「ContentControlOnEnter」

你將不得不使用類似ContentControl.Title指定哪些複選框激活代碼的哪一部分來指定ContentControl中你想如下例所示。 (我也把代碼驗證複選框中的示例檢查)

Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl) 
    If (ContentControl.Title = "Checkbox1" And ContentControl.Checked = True) Then 
     MsgBox "YAAY", vbOKOnly, "Test1" 
    End If 
    If (ContentControl.Title = "Checkbox2" And ContentControl.Checked = True) Then 
     MsgBox "BOOO", vbOKOnly, "Test2!" 
    End If 
End Sub 
相關問題