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.