Python XlsxWriter - VBA宏



在 Excel 中,是一系列記錄的步驟,可以透過快捷鍵重複任意次數。錄製宏時執行的步驟將轉換為 VBA(Visual Basic for Applications)程式設計指令。VBA 是 Visual Basic 語言的一個子集,專門用於自動化 MS Office 應用程式(如 Word、Excel、PowerPoint 等)中的任務。

錄製宏的選項在 MS Excel 的“開發工具”選單中可用。如果看不到此選單,則需要透過轉到“檔案→選項→自定義”功能區螢幕來啟用它。

如以下圖所示,透過轉到“檢視→宏→錄製宏”點選“錄製宏”按鈕,併為宏提供合適的名稱,然後執行要記錄的所需操作。步驟完成後停止錄製。分配一個所需的快捷鍵,以便可以重複記錄的操作,並按下它。

Record Macro

要檢視 VBA 程式碼,請透過轉到“檢視→宏→檢視宏”來編輯宏。從宏名稱中選擇宏,然後點選“編輯”。

Macro Name

將顯示 VBA 編輯器。刪除 Excel 生成的所有步驟,並新增語句以彈出訊息框。

Visual Basic Of Applications

確認宏完美執行。按CTL+Shift+M,訊息框將彈出。將此檔案儲存為.xlsm副檔名。它在內部包含vbaproject.bin,一個二進位制 OLE COM 容器。要從 Excel 宏檔案中提取它,請使用vba_extract.py實用程式。

(xlsxenv) E:\xlsxenv>vba_extract.py test.xlsm
Extracted: vbaProject.bin

示例

現在可以使用add_vba_project()方法將此 vbaProject.bin 檔案新增到 XlsxWriter 工作簿中。在此工作表上,在 B3 單元格處放置一個按鈕物件,並將其連結到我們已經建立的宏(即macro1

import xlsxwriter

workbook = xlsxwriter.Workbook('testvba.xlsm')
worksheet = workbook.add_worksheet()

worksheet.set_column('A:A', 30)
workbook.add_vba_project('./vbaProject.bin')
worksheet.write('A3', 'Press the button to say Welcome.')
worksheet.insert_button(
   'B3',
   {
      'macro': 'macro1',
      'caption': 'Press Me',
      'width': 80, 'height': 30
   }
)
workbook.close()

輸出

執行上述程式碼後,將建立名為 testvba.xlsm 的宏啟用工作簿。開啟它並點選按鈕。它將導致訊息框彈出,如所示。

VBA Project
廣告

© . All rights reserved.