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


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

眾所周知,Excel、PPT、Word文檔或加載宏文件中可以寫很多過程和函數,調試的過程中當然可以按F8或F5直接在VBA環境中運行。

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

另外的方式,就是利用CustomUI技術,制作一個擴展名為xlam的加載宏文件,通過Ribbon中的按鈕來調用VBA宏。這種方式雖然美觀了,但是存在的問題是只要開發一個工具,就得修改或新建一個加載宏文件,冗余操作很多。

 

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

*注意:一般情況下COM加載項里植入的功能區按鈕只能調用COM加載項項目中的過程,而不是VBA中的過程。

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

第一步當然是下載和安裝了,下載地址為:RunMacro-Setup.zip,安裝后產生如下文件:

 

 其中,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文件,是不是太簡單。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM