在Delphi中,如何执行Word中的宏? (200分)

  • 主题发起人 主题发起人 xp2002
  • 开始时间 开始时间
X

xp2002

Unregistered / Unconfirmed
GUEST, unregistred user!
很急呀
客户非得要把报表输出到Word,报表又复杂。
用Delphi怎么画线、贴图、制表格?
提出这个问题,没人理,所以改了题目。
---在Delphi中,如何执行Word中的宏?
我的想法是:把报表生成一个文本文件,定好格式,然后用VBA在word中生成报表,
虽然有点脱裤子放屁的味道,但客户要求必须要满足啊。
问题是:在Delphi中怎么执行宏,而且还要有些参数?

 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517
这个帖子最后写了将Word宏转换成Delphi代码的方法。希望对你有用。

>>把报表生成一个文本文件,定好格式,然后用VBA在word中生成报表,
也可以,不过确实有点不是特别好,而且VBA代码本身还存在一个宏警告的问题。不过使用VBA确实方便多了。
 
你既然要贴图,怎么能用文本文件做中介?
你可以考虑一下用CLIPBORAD做中介。
你的具体状况不太清楚,不过用OLE做这些事不应该会这么难呀。
 
to:yzhshi
我看完了,也没找到怎么用Delphi调用word中的宏。能给个提示吗。
to:j_shen2000
图片先存成JPG,想在调用宏的时候,把文件名传过去就行了,VBA使用插图的功能。
 
找到一个 wordApplication.run(宏名)
但不能传参数。
在word2000.pas中见到可传参数,但是怎么用Word2000.pas,D5总是用word97那个dcu
 
是这样的doc_handle.宏名,包括你在ThisDocument里面自定义的宏都可以的。
如果你使用WordApplication,那我不知道怎么处理,如果使用Com直接调用,上述的方法肯定可以。
另外,对于Word的宏,注意使用ThisDocument,使用好这个,你甚至可以将宏代码复制到另一个Word文件中去
就是实现病毒的功能,具体代码,到网上找一些宏病毒看看就可以了。[:)]
 
yzhshi都回答了你还换题目,真有你的,看看谁还愿意回答你的问题吧
 
wjiachun: 看时间嘛,是因为没有人理,才改的,我改过之后才有的反应。
 
你没有理解我的意思,你既然说是报表,而且还很复杂,那么应该存在丰富的格式、图形、格式化的文字,
你用文本文件保存文字,用BMP保存图形,那么象栏高、宽、子栏数、主从报表层数、主从区分标志
、图形与文字的位置....等等如何保存?如果你在WORD里面画出来的报表和原来的报表样式差别
很大,你觉得客户会满意吗?
另外,用COM方式可以直接实现,为什么非要先新建个宏,再用COM调用宏呢?
如果目的机存在杀毒软件,你的宏搞不好会当成病毒被修理的。
其实yzhshi在http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517中的提示已经
很详细了。
 
呵呵wjiachun老兄真的理解错了,如果真的是那样,我可能真的就不会回答问题了。[:D]
因为那失去了对人的起码尊重!但是这个帖子没有。呵呵。

继续看这段,仔细的看,有你需要的。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=902680

还有,使用模板是一个不错的方法,注意这里说的模板是格式模板,而不是VBA代码模板。
 
对于
在word2000.pas中见到可传参数,但是怎么用Word2000.pas,D5总是用word97那个dcu
我想可以这样解决,首先安装d5的一号升级包;
其中的readme中有一段话,应该是将word97的模板换成word2000的;
原文如下:
ffice 2000 Components
----------------------
To install the Office 2000 components package:

1. Select File | Close all

2. Select Component | Install package

3. Remove package DclAxServer50.bpl to avoid
name conflicts with Ofice 97 components.

4. Add package Dcloffice2k50.bpl, which contains
the Office 2000 components.
卸载DclAxServer50.bpl,再将Dcloffice2k50.bpl安装后,就可以用word2000的控件
另外注意bpl的搜索路径;
 
后退
顶部