Delphi中控制VBA 宏
如何在Delphi里面利用Word的VBA代码进行一些总结。
1、 生成VBA代码。Word本身具有很强的可扩展性,尤其是支持用户自定义功能,其实现
的主要方式就是通过VBA代码来实现的。在“工具->宏->Visual Basic编辑器”里面就可以看
到具体的宏代码,可以直接进行编辑。而且还可以使用录制宏的功能自动生成宏代码。方法是
选择“工具->宏->录制新宏”,然后执行自己想通过程序实现的功能,如存盘、打印等功能,
此时Word一边执行你要实现功能,一边将你的操作生成了一个宏,在实现功能后,可以选择
“工具->宏->VisualBasic编辑器”,查看生成的宏代码。
例如:我们要将文档中的“讨论”全部替换成“研讨”。
a. 点击“工具->宏->录制新宏”,直接点击确定,默认的宏保存到了Normal.dot系统公
用模板里面。
b. 点击“编辑->查找”,出现弹出对话框,输入查找和替换的字,点确定。进行替换。
c. 结束宏的录制,点击结束按钮。
d. 按F11或者“工具->宏->Visual Basic 编辑器”,查看宏代码。缺省查看Normal里面
的模块里面的NewMacros模块。
以下是生成的宏代码:
Sub Macro1()
'
' Macro1 Macro
' 宏在 2002-2-1 由 yzhshi 录制
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "讨论"
.Replacement.Text = "研讨"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Re
相关文档:
<1>利用Unit的
Initalization与Finalization这两个小节
可以在Unit的这两个小节中安排Unit的进入和退出,但是
Program
与
Library并没有这两个部分,所以只能写在Unit中。
<2>利用ExitProc变量
在Library的begin
..end.中间是可以写代码
的,
这里可以放置
DLL初始化代码
。如果想要做善 ......
Delphi编写系统服务三:编写两栖系统服务 收藏
采用下面的方法,可以实现一个两栖系统服务(既系统服务和桌面程序的两种模式)
工程代码:
program FleetReportSvr;
uses
SvcMgr,
Forms,
SysUtils,
Windows,
SvrMain in 'SvrMain.pas' {FleetReportService: TService}, ......
procedure TForm1.Button2Click(Sender: TObject);
var
o : Olevariant;
begin
webbrowser1.Navigate('http://www.163.com');
delay(2000);
o := WebBrowser1.OleObject.document.all.item('username',0);
o.value := 'username';
o := W ......
procedure Delay(msecs:integer);
var
Tick: DWord;
Event: THandle;
begin
Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickCount + DWord(msecs);
while (msecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, msecs, QS_ALLINPUT) <&g ......
由于需要在窗体中设定一个日期时间,出去通用型考虑,采用了TDateTimePicker控件。
因为这个控件的默认状态只能显示日期,造成使用上的不便,所以需要做如下的设定:
在控件的format属性栏里设置如下值:yyyy-mm-dd hh:mm:ss;
设定完成后的时间为当前的系统时间,不能通过弹出日历设定,只能在文本框中设定。 ......