导入VBA常量方法:http://blog.sina.com.cn/s/blog_a73687bc0101k8x8.html

我们之前说过,win32com组件为python提供处理COM组件(.dll,.exe)的能力,它相当于一个中间层,为编程程人员提供了处理COM组件的各种接口。而我们用到的VBA正是一个COM组件库。所以我们要用win32com来对接这个组件库。

问题一:那么这个VBA组件库如何而来,我们要怎样才能导入这个组件库里面的内容呢?

我们通常所用的DLL(excel的dll,word的dll及其他的dll等)能够被显示处来使用,实际上已经被注册到我们的计算机了。例如我们要对word进行二次开发,我们在安装word程序的时候,二次开发所需要的组件已经注册到计算机系统中了。同时一些非常重要的dll在我们安装window操作系统的时候已经给我们安装好了。因此这个VBA组件库在我们安装office软件后就自动安装了。

要导入这个组件库的内容,用户就要能够看得到这些dll文件然后通过import导入这些文件或者能够通过其他方式引用到这些文件。例如:在开发VBA时,通过app=win32com.client.Dispatch('WordApplication')我们得到了app这个Application对象。由于VBA组件是一种层次结构,而Application位于这个层次结构的根部,所以可以通过app这个对象找到其他的对象(例如通过app.Documents就可以返回Documents这个对象了,依次类推)。

问题二:我们可以通过根app找到其他对象,那么如何找到定义的其他的内容呢,例如定义的全局变量,常量等?

如何要解决这个问题,那么我们就必须能够看得见包含这些全局变量和常量的文件,然后导入我们需要的文件中。那么如何才能看得见这些所需要的文件呢?

答案就是win32com组件中client包里的makepy.py模块了。

这个模块相当于一个转化模块,能够将二进制的dll文件转化为.py文件供用户导入使用。我们只需要python makepy.py(即执行这个文件),就会显示出计算机系统中所有安装的类型库(com组件),我们只需要选中所需的com组件,然后单击,程序自动会将选中的com组件转化成.py模块供我们调用。转化完后程序会提示转化后的文件存放在哪个位置,我们只需要导入这个文件就可以使用了,这就是win32com的重要功能,真是完美极了。

问题三:如何导入一个模块呢?

python查找导入模块的路径顺序为:

1.当前执行文件所在的目录;

2.sys.path所在的目录。

因此我们只需要把相关文件路径复制到以上两种路径内,就可以了。如果不想复制,在import之前调用sys.path.append('the required path')就可以将文件路径添加到sys.path中。

win32com操作word(3):导入VBA常量的更多相关文章

  1. win32com操作word(2):常用用法

    一.对象的位置关系: 1.Range属性位于(部分): Selection__Section__Cell__Paragraph__Table__Bookmark__Comment__Row__List ...

  2. win32com操作word(1):几个重要的对象(28.35)

    Pywin32模块为python封装了操作windows底层API函数的功能.而win32com是Pywin32下面的一个模块,专门负责操作com组件. 由于office工具(Word.Excel等) ...

  3. VBA操作word生成sql语句

    项目开始一般都是用word保存下数据库的文档 但是从表单一个一个的建表实在是很困难乏味,查查资料 1.可以生成一个html或者xml,检索结构生成sql.但是这个方式也蛮麻烦 2.查到vba可以操作w ...

  4. Excel VBA 操作 Word(入门篇)

    原文地址 本文的对象是:有一定Excel VBA基础,对Word VBA还没有什么认识,想在Excel中通过VBA操作Word还有困难的人.   一.新建Word引用 需要首先创建一个对 Word A ...

  5. python操作word(改课文格式)【最终版】

    python操作word的一些方法,前面写了一些感悟,有点跑题,改了下题目,方便能搜索到.心急的可以直接拉到最后看代码,我都加了比较详细的注释. 从8.3号早上9点,到8.8号下午5点半下班,终于把这 ...

  6. delphi 换行操作 Word

    delphi 换行操作 我将我的商用<旅行社管理系统>的 发团通知 部分奉献给您,望对您有所帮助. procedure TFrmMain.N327Click(Sender: TObject ...

  7. Python操作Word【批量生成文章】

    http://www.cnblogs.com/codex/p/4668396.html 需要做一些会议记录.总共有多少呢?五个地点x7个月份x每月4篇=140篇.虽然不很重要,但是140篇记录完全雷同 ...

  8. Python操作Word批量生成文章

    需要做一些会议记录.总共有多少呢?五个地点x7个月份x每月4篇=140篇.虽然不很重要,但是140篇记录完全雷同也不好.大体看了一下,此类的记录大致分为四段.于是决定每段提供四种选项,每段从四选项里随 ...

  9. 使用win32com操作woord的方法记录

    CSDN博客平台中有众多的 win32com 库操作word 的说明,对于通用的内容将一笔带过,主要介绍目前看来独一无二的内容. import win32com from win32com.clien ...

随机推荐

  1. sql 查询 一张表里面的数据 在另一张表中是否存在 和 比对两个集合中的差集和交集(原创)

    这两天在搞一个修复的小功能 需求: A表,B表,C表,日志文件 先筛选出A表和B表中都符合条件的数据,然后检查这些数据在C表中是否存在.如果不存在,就从日志中读取数据,存入C表中,如果存在,则不做操作 ...

  2. 2个YUV视频拼接技术

    http://blog.csdn.net/huahuahailang/article/details/9040847 2个YUV视频拼接技术 http://zhongcong386.blog.163. ...

  3. jquery插件获取事件类型

    //需要在使用函数时传入event关键字 $('[name=lprice]').change(function(event){ $('[name=lprice]').validate({ event: ...

  4. selenium3 踩坑--move_to_element()报错

    问题:selenium3 使用move_to_element()报错,报错信息如下图所示: 网上没有找到合适的解决办法,回退到稳定的selenium2可以解决. pip install seleniu ...

  5. 04 redis list结构及命令详解

    一:link 链表结构 lpush key value 作用: 把值插入到链接头部[右边] 注意:rpush key value 插入到左边 rpop key 作用: 返回并删除链表尾元素 rpush ...

  6. 【转】win7 任务计划 任务映像已损坏或篡改(异常来自HRESULT:0x80041321)

    请这样操作:1. 以管理员身份运行命令提示符并执行命令chcp 437schtasks /query /v | find /i "ERROR: Task cannot be loaded:& ...

  7. 微信小程序TabBar的使用

    一.TabBar使用步骤 1.创建所需要的界面和所需要的图片: 2.配置文件: 我们找到项目根目录中的配置文件 app.json 加入如下配置信息 "tabBar": { &quo ...

  8. eclipse转到IntelliJ IDEA 2017.1入坑指南

    最近准备从eclipse转到IDE上去,由于eclipse占用的内存太大,而且IDE看着逼格还是比较大的,在转移项目的时候遇到好多的坑呀!在这里记录一下 关于:2017.1版本 之前装的是2016的版 ...

  9. vue-cli3.0升级失败,vue-cli卸载不掉,vue-cli升级不了3.0

    https://juejin.im/post/5bf7d67c51882518805acb1a vue-cli3.0 使用图形化界面创建和管理项目

  10. npm ERR! fatal: unable to connect to github.com

    https://blog.csdn.net/baidu_30809315/article/details/86520093 git config --global url."https:// ...