功能區按鈕調用Excel、PowerPoint、Word中的VBA宏:RunMacro

功能區按鈕調用Excel、PowerPoint、Word中的VBA宏:RunMacro函數

衆所周知,Excel、PPT、Word文檔或加載宏文件中能夠寫不少過程和函數,調試的過程當中固然能夠按F8或F5直接在VBA環境中運行。工具

不過,當你開發完一個工具的時候,必定會想到這些過程的執行方式,廣泛的作法是向工做表上放置表單控件,用戶在工做表上點擊按鈕來執行宏。spa

另外的方式,就是利用CustomUI技術,製做一個擴展名爲xlam的加載宏文件,經過Ribbon中的按鈕來調用VBA宏。這種方式雖然美觀了,可是存在的問題是隻要開發一個工具,就得修改或新建一個加載宏文件,冗餘操做不少。設計

 

我最近開發了一個RunMacro的COM加載項,當加載後用戶點擊功能區中的按鈕就能夠調用他寫的VBA過程調試

*注意:通常狀況下COM加載項裏植入的功能區按鈕只能調用COM加載項項目中的過程,而不是VBA中的過程。xml

那下面就直接寫使用方法了,看好了。blog

第一步固然是下載和安裝了,下載地址爲:RunMacro-Setup.zip,安裝後產生以下文件:ip

 

 其中,RunMacro.dll就是COM加載項自己,不用理他,Office三大組件會自動加載這個共用加載項。開發

另外,會看到還有3個XML文件,例如用記事本打開Excel.xml,顯然這是一個定製功能區的XML代碼,默認狀況下有四個button,注意裏面的每一個onAction,用它來指代點擊按鈕調用哪個VBA過程,紅框中的部分,是否是一看就明白?文檔

 

 這個文件其餘位置的編輯方法沒什麼兩樣,惟一注意的是就是onAction要寫上VBA中確實存在的過程名稱。固然你須要事先準備好的VBA代碼了,假設你作了一個「上傳工具.xlsm」,裏面有個模塊Module2,裏面包含一個ABC過程。

 

 那麼它剛好對應於<button id="Button3" label="Button3" imageMso="C" size="large" onAction="上傳工具.xlsm!Module2.ABC"/>

當你點擊Button3這個按鈕時,彈出一個「好棒呀」,這顯然是VBA中的過程。 

 

 

 對於PowerPoint、Word,作法與Excel相似。效果以下:

 

 點擊四個按鈕其中的一個,會彈出錯誤對話框,這是很正常的。由於,我打開的幻燈片是空白的,沒有任何宏。你須要事先準備一下。

總結

在使用工具的過程當中,咱們須要作的有兩點,一是把VBA開發的工具作好,過程名明確,宏名是什麼,它的模塊名是什麼,文件名是什麼。

二是根據VBA中的過程路徑,來修改對應的XML文件中的onAction屬性,我提供的模板僅僅是默認值,你們能夠根據customUI的知識任意修改XML。

那麼,RunMacro究竟帶來了哪些好處呢?

1.用戶不須要設計加載宏,也不須要開發COM加載項,只負責開發VBA部分便可。

2.根據VBA工程結構,修改對應XML文件,是否是太簡單。

相關文章
相關標籤/搜索