导入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. 创建自己的taglib 并打包入jar

    1. Create a TLD (tag library descriptor) file namedmy-tags.tld. For more information, see Creating a ...

  2. Linux - 配置SSH免密通信 - “ssh-keygen”的基本用法

    目录 1 什么是SSH 2 配置SSH免密登录 2.1 安装必需的软件 2.2 ssh-keygen创建公钥-私钥对 2.3 ssh-copy-id把A的公钥发送给B 2.4 在A服务器上免密登录B服 ...

  3. Hadoop起源

    本文来自Doug Cutting为<Hadoop权威指南>所作之序,感觉读一下还是挺有收获的. Hadoop 起源于Nutch项目.我们几个人有一段时间一直在尝试构建一个开源的Web搜索引 ...

  4. MagicZoom bug-Strict Standards: Only variables should be assigned by reference Error

    问题:zencart Strict standards: Only variables should be assigned by reference in  jscript_zen_magiczoo ...

  5. idea 的IDE

    idea 是与eclipse齐名的IDE(集成开发工具),以智能闻名,不过对于熟悉eclipse的的用户来说,初次接触idea有些让人搞不清方向,下面介绍一下简单的使用 方式. 1.安装 官网下载ul ...

  6. JAVA程序开发按位运算的记录

    忘记在哪里看到一个面试题:把int a,b的值互换,不能使用临时变量.刚开始完全懵逼,脑子里面全是浆糊,不知道如何下手.查看答案后猛地一惊,心想居然还有这种操作,真是叹为观止,真的感觉自己的基础是如此 ...

  7. mongodb.py

    from chatterbot.storage import StorageAdapter class Query(object): def __init__(self, query={}): sel ...

  8. 基于EasyNVR+EasyDSS H5视频直播二次开发实现业务需求:直接使用播放页面

    之前的"网页直播.微信直播技术解决方案:EasyNVR与EasyDSS流媒体服务器组合之区分不同场景下的easynvr"有介绍一些功能.由于客户需求,我们定制一下功能.给该套方案添 ...

  9. 这种实现方式比使用 += 要更节省内存和 CPU,尤其是要串联的字符串数目特别多的时候。

    这种实现方式比使用 += 要更节省内存和 CPU,尤其是要串联的字符串数目特别多的时候. package main import ( "bytes" "fmt" ...

  10. php调用短网址接口

    <?php $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,"http://dwz.cn/create.php"); curl_se ...