如何在 delphi 中调用下面的宏代码? Thank(100分)

  • 主题发起人 主题发起人 zilo
  • 开始时间 开始时间
Z

zilo

Unregistered / Unconfirmed
GUEST, unregistred user!
Sub Macro1()
'
' Macro1 Macro
' 宏在 2001-9-27 由 zilo 录制
'
With Options
.InsertedTextMark = wdInsertedTextMarkUnderline
.InsertedTextColor = wdBlue
.DeletedTextMark = wdDeletedTextMarkStrikeThrough
.DeletedTextColor = wdByAuthor
.RevisedPropertiesMark = wdRevisedPropertiesMarkItalic
.RevisedPropertiesColor = wdDarkBlue
.RevisedLinesMark = wdRevisedLinesMarkOutsideBorder
.RevisedLinesColor = wdAuto
End With
With ActiveDocument
.TrackRevisions = True
.PrintRevisions = True
.ShowRevisions = True
End With
End Sub
 
创建一个Ole对象

然后调用Ole本身执行它 eg:

Word:=CreateObject('Word.Application');
Word.插入宏(具体的方法名忘记了)
Word。执行宏

*********
这个问题以前就讨论过了,查找一下,估计还有![:)]
 
下面以word 为例
var
Curword: string;
begin
Curword := GetRegString(HKEY_CLASSES_ROOT, '/word.Application/CurVer', '', '');
if Curword = '' then
begin
Application.MessageBox('请先安装 word 97 或 word 2000!',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
Exit;
end;

if (Curword <> 'word.Application.8') and (Curword <> 'word.Application.9') then
begin
Curword := GetRegString(HKEY_CLASSES_ROOT, '/word.Application.8', '', '');
if Curword = '' then
begin
Curword := GetRegString(HKEY_CLASSES_ROOT, '/word.Application.9', '', '');
if Curword <> '' then Curword := 'word.Application.9';
end
else
begin
Curword := 'word.Application.8';
end;

if Curword = '' then
begin
Application.MessageBox('无法运行 word 97 或 word 2000,' + #13#10
+ '请检查 word 97 或 word 2000 是否已经正确安装。',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
Exit;
end;
end;

try
Fword := CreateOleObject(Curword);
if VarIsEmpty(Fword) then
begin
Application.MessageBox('无法运行 word 97 或 word 2000,' + #13#10
+ '请检查 word 97 或 word 2000 是否已经正确安装。',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
Exit;
end;
except
Application.MessageBox('无法运行 word 97 或 word 2000,' + #13#10
+ '请检查 word 97 或 word 2000 是否已经正确安装。',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
Exit;
end;

try
begin
Fword.DisplayAlerts := False;

SetCurrentDir(ExtractFilePath(Application.Exename));
Fdoc:=Fword.documents.Open(ExtractFilePath(Application.Exename) + '含有宏的文档.doc');
Fword.Visible := True;
Fword.Run('宏的名称',宏的参数1,宏的参数2,宏的参数3...... );

Result := True;
end;
except
Application.MessageBox('运行失败,',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
end;
end;

 
如果能详细说明一下 宏参数就更好,Thank
 
斑竹把问题关掉吧
 
后退
顶部