2011-03-03 36 views
2

this question我在調試帶有要在Office 2010後臺中使用的參數的宏時出現問題。從後臺調用帶有參數的VBA宏

對這個問題的回答解釋了爲什麼我不能推出宏,但我仍然有調用宏的問題。

單擊Backstage選項卡中的按鈕調用該宏。有多個按鈕可以調用宏,每個按鈕都以不同的參數調用它。一個例子電話如下:

<button id="bb1" label="MFLLP Portrait" style="large" onAction="NewDocs (Blank, Portrait.dot)" imageMso="FileSaveAsWordDocx" /> 

宏設置信任中心的完全支持,但是當我點擊任何按鈕,我得到的消息

宏無法找到或已禁用,因爲您的宏安全設置

我看不到任何進一步的設置

回答

1

OnAction從未採取面值ameter,在任何版本的Word中。對於大多數人來說,解決這個問題的方法是給控件分配一個標籤,然後從onAction例程中獲取該標籤,並根據需要進行解析。

這個標籤是文本的,所以你只需要一些很好的解析邏輯,比如如果你在你的標籤中有「2,True,Blue」那麼你會分割字符串,數組的第一部分會是一些整數值,下一個將是布爾值,下一個可能是顏色或字符串值「

這是@#$中的一個完整的痛苦 - 但這正是我們所有VBA開發者所擁有的多年來一直在傳遞參數

+0

如果這是瘋狂的情況,我想另一種選擇是爲每個按鈕都設置一個特定的宏,然後調用帶有相應參數的exe(或者將它們傳遞給「main 「宏) – 2011-03-04 10:15:28

+0

@丹克lly:確實。這就是我一開始所做的。隨着我的參數需求增長,我最終得到了解析後的'.Tag'解決方案,但是如果您只有幾個不同的參數化例程,它應該很簡單,可以在單獨的例程中管理它們。 – 2011-03-04 19:41:18