xlwings与其他Office应用#

除了Excel,从Office的其他应用(如Outlook, Access等)中,也可以在VBA中通过xlwings调用Python函数。

备注

This is an experimental feature and may be removed in the future. Currently, this functionality is only available on Windows for UDFs. The RunPython functionality is currently not supported.

如何使用#

  1. 通常,先写好Python函数并导入到Excel中(参考 User Defined Functions (UDFs))。

  2. Alt-F11 组合键进入VBA编辑器,在VBA模块 xlwings_udfs 上点击右键,并选择 Export File(导出文件)... 。把 xlwings_udfs.bas 文件存到某个位置。

  3. 切换到其他的Office应用,比如微软的Access,并再通过 Alt-F11 组合键进入VBA编辑器。 在VBA Project区域点击右键、选择 Import File(导入文件)..., 然后选择上面步骤中导出的文件。 导入之后,在代码的第一行中把原代码的 Microsoft Excel 替换成现在的应用名称,如 Microsoft AccessMicrosoft Outlook 。替换好之后,代码的第一行显示为: #Const App = "Microsoft Access"

  4. 现在导入独立的xlwings VBA模块(xlwings.bas)。这个模块中xlwings安装目录下。可以通过下列命令找出这个目录:

    >>> import xlwings as xw
    >>> xlwings.__path__
    

    最后和上面步骤一样,把代码第一行的应用名称修改为正在使用的应用名称。 现在就可以从VBA中调用(导入的)Python函数了。

配置#

其他Office应用同样使用Excel功能区加载项设置过的全局配置。如果需要,你可以用目录级的配置文件(例如,可以放在Access或Word文件的相同目录里),也可以把路径直接写入VBA独立模块的配置文件中(例如,建议在使用Outlook这样做,因为它不像其他office应用,它的文件概念和其他应用不一样)。注意: 对于没有文件概念的Office应用,需要确认 PYTHONPATH 指向包含Pyhon源文件的目录。关于不同配置的细节,参考 Config