Python XlsxWriter VBA 宏
在 Excel 中,一个 macro 是记录的一系列步骤,可以使用快捷键重复任意次数。录制宏时执行的步骤被翻译成编程指令 VBA,它代表 Visual Basic for Applications。 VBA 是 Visual Basic 语言的子集,专门用于自动执行 MS Office 应用程序(如 Word、Excel、PowerPoint 等)中的任务。
MS Excel 的开发人员菜单中提供了录制宏的选项。如果没有看到此菜单,则必须通过转到“文件→选项→自定义”功能区屏幕来激活它。
如下图,点击录制宏按钮,进入“查看→宏→录制宏”,给宏起一个合适的名字,执行想要录制的动作。步骤结束后停止录制。分配所需的快捷方式,以便在按下时可以重复录制的操作。
要查看 VBA 代码,请通过查看→ZMacros→查看宏来编辑宏。从宏名称中选择宏,然后单击编辑。
将显示 VBA 编辑器。删除Excel生成的所有步骤并添加语句以弹出消息框。
确认宏工作正常。按 CTL+Shift+M 并弹出消息框。保存这个文件 .xlsm 扩大。它内部包含 vba项目.bin ,一个二进制 OLE COM 容器。要从 Excel 宏文件中提取它,请使用 vba_extract.py utility.
(xlsxenv) E:\xlsxenv>vba_extract.py test.xlsm Extracted: vbaProject.bin
例子
这个 vbaProject.bin 文件现在可以使用 add_vba_project() 方法。在此工作表上,在 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 的启用宏的工作簿。打开它并单击按钮。它将导致消息框弹出,如图所示。