导入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. 应用程序之SingleViewApplication

    理论概念学习 iOS运行原理 代码结构分析 代码初步实现 一.理论学习 1⃣️.每一个应用程序都有属于自己的UIWindow,继承自UIView 2⃣️.每一个满屏的UIView都由一个UIViewC ...

  2. 用Putty连接Linux

    随着linux应用的普及,linux管理越来越依赖远程管理.在各种telnet类工具中,putty是其中最出色的一个. 一.Putty简介     Putty是一个免费小巧的Win32平台下的teln ...

  3. request获取数据的几种方法

    1.request.getparameter(); String value=request.getparameter("key"); 2.request.getParameter ...

  4. php遍历对象属性,可以使用foreach,直接打印出属性

    依然遵循私有属性不可以在外访问,(不能打印出来) 但可以在内部访问这个原则.

  5. HandlerMethodArgumentResolver 参数解析器

    关于springMvc中的参数解析器 springMvc中的HandlerAdapter会检测所有的 HandlerMethodArgumentResolver(对参数的解析器) HandlerMet ...

  6. java jdbc oracle ORA-01795: 列表中的最大表达式数为 1000

    在操作SQL中存在In的数量如果超过1000条会提示   ORA-01795: 列表中的最大表达式数为 1000 归纳有几种方式出现的: 第一种是:我在上一个 [jdbc 同时执行 查询和删除操]作中 ...

  7. 用户对变量或寄存器进行位操作 、“|=”和“&=~”操作

    给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a的bit 3.在以上两个操作中,要保持其他位不变. 答案: ----------------------------------- ...

  8. 自定义下拉刷新控件-CBStoreHouseRefreshControl

    本文转载至 http://www.cocoachina.com/ios/20141110/10177.html iOS开发自定义刷新CBStoreHouseRefres 介绍 这是一款在Storeho ...

  9. 【BZOJ1222】[HNOI2001]产品加工 DP

    [BZOJ1222][HNOI2001]产品加工 Description 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同 ...

  10. EasyNVR H5流媒体服务器方案架构设计之视频能力平台

    历经过程 阶段一:经历过传统安防开发过程的开发者都有一种感觉,就是各种业务交织,各个模块的开发扯皮,各种数据库连接冲突,这很让开发工作效率很低,而且会给整体的开发带来负面影响,更重要的是,耦合度太高, ...