Python XlsxWriter – VBA宏程序

Python XlsxWriter – VBA宏程序

在Excel中, 宏是 一系列记录下来的步骤,可以通过一个快捷键重复任意次数。记录宏时执行的步骤被翻译成编程指令VBA,它代表Visual Basic for Applications。VBA是Visual basic语言的一个子集,特别是为了在MS Office应用程序(如Word、Excel、PowerPoint等)中实现任务自动化而编写。

录制宏的选项可在MS Excel的 “开发人员 “菜单中找到。如果没有看到这个菜单,必须通过 “文件→选项→自定义 “功能区屏幕来激活它。

如下图所示,点击 “视图→宏→记录宏 “中的 “记录宏 “按钮,给宏起一个合适的名字,并执行需要记录的动作。在这些步骤结束后,停止录制。指定一个所需的快捷方式,以便在按下该快捷方式时可以重复记录的动作。

Python XlsxWriter - VBA宏程序

要查看VBA代码,可以通过查看→ZMacros→查看Macros来编辑宏。从巨集名称中选择巨集,然后点击编辑。

Python XlsxWriter - VBA宏程序

VBA编辑器将被显示。删除所有由Excel生成的步骤,并添加语句以弹出一个消息框。

Python XlsxWriter - VBA宏程序

确认该宏完美运行。按 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单元格放置一个按钮对象,并将其链接到我们已经创建的宏( 即宏1 )。

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的宏启用工作簿将被创建。打开它并点击按钮。它将导致弹出如图所示的信息框。

Python XlsxWriter - VBA宏程序

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程