# 调用Python模块

CreateObject("Stock.Python")

  1. 本对象封装了Python接口的调用,为用户在vba中简易使用Python算法提供了可能。
  2. 本对象仅支持金字塔“Python模块”分类中的Python代码,用户需要自行将需要执行的Python代码放置此处并编译。
方法
方法 说明
ImportModule 加载Python模块
CallObject 调用Python模块函数
GetErrorInfo 获取错误信息内容
示例
sub Test

    '创建外部对象,启用Python引擎
    Set d = CreateObject("Stock.Python")
    
    '载入Python模块,模块名为MyPython
    ret = d.ImportModule("MyPython")
    If ret <> 1 Then
            '载入失败,打印错误原因
            Msg = d.GetErrorInfo()
            Application.MsgOut Msg
            Set Msg = Nothing'使用完毕需要 Set Nothing销毁以免出现内存泄漏
            Exit Sub
    End If

    Data = d.CallObject("pytestmodule",123,"你好")

    If IsEmpty(Data) Then
            Msg = d.GetErrorInfo()
            Application.MsgOut Msg
            Set Msg = Nothing'使用完毕需要 Set Nothing销毁以免出现内存泄漏
            Exit Sub
    End If

    '打印返回值
    application.MsgOut "Result:"&Data
    Set d = nothing'使用完毕需要 Set Nothing销毁以免出现内存泄漏

end Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

其中Python “MyPython”模块代码:

def pytestmodule( par1, par2 ):
    write_logging(str(par1)+"--"+par2)
    return "返回了"
1
2
3