簡體   English   中英

部署VBA宏

[英]Deploying a VBA-macro

我創建了一個VBA宏,它將被我公司內部的一些word文檔使用。 宏檢測標記並從文檔中刪除章節。 本文檔由另一個程序創建。 因此宏應該是可單獨分發的。

是否可以生成一個可執行文件,將宏添加到運行可執行文件的用戶?

是否有另一種方法來打包宏並將其安裝在用戶的計算機上?

謝謝

部署宏的最簡單方法是通過模板。 創建宏並將文件另存為.dotm(啟用宏的模板)。 我想你會得到一個建議,保存你的.dotm文件。

任何想要使用你的模板的同事都必須把它放在那個目錄里(我認為它是C:\\ Users \\ [UserName] \\ AppData \\ Roaming \\ Microsoft \\ Templates)。 之后,他應該能夠在處理任何word文檔時使用宏。

基本上有五種方法可以做到這一點:

1)向每個人發送一個帶有宏的文本文件,它們可以粘貼到自己的Normal模板中。 這對於非常簡單的宏來說很好,這些宏不太可能與用戶自己創建的宏有任何名稱沖突,但它確實需要VB編輯器的基本知識。

2)通過導出包含宏的模塊向每個人發送您創建的.bas文件。 這為您提供了更多控制,避免了復制/粘貼錯誤。 仍然需要對VB編輯器的基本理解(或者你的體面指令)。

3)將宏打包在一個模板(.dotm文件)中,該模板位於Templates文件夾中。 用戶可以將該模板應用於他們正在創建的任何文檔,並獲得對宏的訪問權限。 不需要VB知識; 這是通過標准的Word新文件過程完成的。 如果需要,還允許您包含樣式或其他內容。

4)將宏打包為一個位於Startup文件夾中的全局模板(.dotm文件)。 用戶可以訪問他們處理的每個文件中的宏,無需應用模板。 如果您正在做的事情對您團隊的工作流程至關重要,並且不要求您在宏中包含樣式,那么這很好。 您還可以構建UI元素。 (在Word 2011中,此方法可能存在問題;用戶可能無法立即訪問全局模板,但很容易返回。)

3和4都要求用戶最初將.dotm文件放在正確的位置。 您可以幫助他們(一種方法是使用另一個Word文檔作為“設置”文件,在運行時,將模板放在假定的正確文件夾中)。 顯然,您需要做更多的工作,所以您希望在多大程度上取決於您和您的業務需求。

5)此外,如果您可以控制文檔本身的創建(而不僅僅是宏),則可以在文檔中嵌入宏。 您可以將宏本身放在文檔的ThisDocument模塊中(在Project Explorer中找到您的文檔,然后打開Microsoft Word對象)。 然后將文檔另存為.docm(啟用宏的文檔)。 應該指示用戶在打開文檔時啟用宏(不同版本的Word使用稍微不同的界面來提示用戶這一點,但它總是非常明顯)。

在過去的7年中,我一直以不同的方式部署Word VBA。 該軟件是一個Word插件,可以讓教師更輕松地提供有關作業的反饋。 它作為一個30天的試用版進行分發,如果用戶購買它們,它們將獲得一個密鑰,使他們可以使用eMarking Assistant一年。 您可以在http://eMarkingAssistant.com上測試部署系統

部署和許可機制如下:

  1. 將vba保存在啟用宏的文檔中,即.docm文件
  2. 在Windows中將文件重命名為.doc文件
  3. 使用來自http://orlando.mvps.org/VBADecompilerMore.asp的 Orlando優秀的“VBA反編譯器和壓縮器”,從.doc中刪除已編譯的代碼和對特定Office版本的引用,並壓縮文檔
  4. 要求用戶下載.doc文件
  5. 要求用戶打開.doc文件並確保已啟用宏
  6. 讓用戶在文檔中試用該軟件
  7. 如果他們想在任何文檔中使用該軟件,他們單擊文檔中的“安裝”按鈕將vba代碼復制到其Word啟動文件夾中的.dotm文件(因此它是自動加載的)
  8. 如果他們想購買訂閱以使用該軟件,他們使用paypal付款,我發送一個密鑰,解鎖軟件直到訂閱結束

這個過程的優點是:

  1. 從Office 97到Office 2016(32位和64位)的所有Office for Windows版本都可以使用單個文檔。
  2. 安裝和卸載都發生在Office中,因此suer不需要對其計算機具有管理權限
  3. 用戶在文檔中使用該軟件之前無需安裝該軟件
  4. 用戶無需使用其他程序解壓縮或安裝軟件

彼得埃文斯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM