Python Xlsxwriter 简明教程
Python XlsxWriter - VBA Macro
在 Excel 中, macro 是由一系列已记录的步骤组成,可以通过快捷键多次重复这些步骤。在录制宏时执行的步骤被转换成编程指令 VBA,VBA 代表 Visual Basic for Applications。VBA 是 Visual Basic 语言的一个子集,专门用于自动执行 MS Office 应用程序(如 Word、Excel、PowerPoint 等等)中的任务。
在 MS Excel 的“开发工具”菜单中提供录制宏的选项。如果看不到此菜单,则必须通过转到“文件→选项→自定义”功能区屏幕来激活它。
如下图所示,通过转到“视图→宏→录制宏”单击录制宏按钮,为宏提供一个合适的名称并执行要记录的所需操作。在步骤结束之后,停止录制。分配一个所需的快捷键,以便可以重复录制的操作并按下该快捷键。
若要查看 VBA 代码,可以通过转到“视图→宏→查看宏”来编辑宏。从宏名称中选择宏并单击“编辑”。
将显示 VBA 编辑器。删除 Excel 生成的所有步骤并添加语句以弹出消息框。
确认宏运行完美。按 CTL+Shift+M ,然后弹出消息框。使用 .xlsm 扩展名保存此文件。它在内部包含 vbaproject.bin ,它是二进制 OLE COM 容器。若要从 Excel 宏文件中提取它,请使用 vba_extract.py 实用工具。
(xlsxenv) E:\xlsxenv>vba_extract.py test.xlsm
Extracted: vbaProject.bin
Example
现在可以使用 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()