我将一个.DOC文件转存成.txt文件,在Word中查看宏命令的VB代码如下:
Sub 测试保存()
'' 测试保存 Macro
' 宏在 2005-3-7 由 Bryantd 录制
' ChangeFileOpenDirectory "E:\"
ActiveDocument.SaveAs FileName:="test.txt", FileFormat:=wdFormatText, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, Encoding:=936, InsertLineBreaks:=False, AllowSubstitutions:=False, _
LineEnding:=wdCRLF
End Sub
用OLE在Delphi中应该怎样实现?
WordApp:=CreateOleObject('Word.Application');
WordApp.Documents.Open('e:\test.doc');
WordApp.Visible:=False;
……………………//就是这段代码应该怎么写呢????
WordApp.Documents.Close;
WordApp.Quit;
ShowMessage('转存完毕!')
Sub 测试保存()
'' 测试保存 Macro
' 宏在 2005-3-7 由 Bryantd 录制
' ChangeFileOpenDirectory "E:\"
ActiveDocument.SaveAs FileName:="test.txt", FileFormat:=wdFormatText, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, Encoding:=936, InsertLineBreaks:=False, AllowSubstitutions:=False, _
LineEnding:=wdCRLF
End Sub
用OLE在Delphi中应该怎样实现?
WordApp:=CreateOleObject('Word.Application');
WordApp.Documents.Open('e:\test.doc');
WordApp.Visible:=False;
……………………//就是这段代码应该怎么写呢????
WordApp.Documents.Close;
WordApp.Quit;
ShowMessage('转存完毕!')
LockComments:=False, Password:='', AddToRecentFiles:=True, WritePassword :='', ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False, Encoding:=936, InsertLineBreaks:=False, AllowSubstitutions:=False,LineEnding:=wdCRLF);
aWord.SaveAs(……);
//参考如下代码
var
WordApp: OleVariant;
vVBComponents: OleVariant;
I: Integer;
begin
WordApp := CreateOleObject('Word.Application');
WordApp.Visible := False;
WordApp.Documents.Open('e:\test.doc'); vVBComponents := WordApp.VBE.ActiveVBProject.VBComponents;
with TStringList.Create do try
Text :=
'Sub MyMacro()'#13#10 +
' ActiveDocument.SaveAs FileName:="e:\test.txt", FileFormat:= _'#13#10 +
' wdFormatUnicodeText, LockComments:=False, Password:="", AddToRecentFiles _'#13#10 +
' :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _'#13#10 +
' :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _'#13#10 +
' SaveAsAOCELetter:=False'#13#10 +
'End Sub'#13#10;
for I := 1 to Count do
vVBComponents.Item(2).CodeModule.InsertLines(I, Strings[I - 1]);
WordApp.Run('MyMacro');
vVBComponents.Item(2).CodeModule.DeleteLines(1, Count);
finally
Free;
end;
WordApp.Documents.Close;
WordApp.Quit;
ShowMessage('转存完毕!')
end;
WordApp:=CreateOleObject('Word.Application');
WordApp.Documents.Open('e:\test.doc');
WordApp.Visible:=False;
VTemplate:=WordApp.ActiveDocument.AttachedTemplate;
Template:=VTemplate.Name;
WordApp.Documents.Close;
WordApp.Quit;
ShowMessage('这个文件的模版是'+Template)
所以我想要的是这个思路。
关于打开TempEmpty := EmptyParam;
TempDoc := EmptyParam;
NewTempDoc := True;
try
Wordapplication1.Connect;
except
MessageDlg('无法打开Word,请确认已安装Word。', mtError, [mbOk], 0);
Abort;
end;
//打开指定WORD文档
TempWord := Edit1.Text ;
//WordApplication1.Visible := True;
WordApplication1.Documents.Open(TempWord,TempEmpty,TempEmpty,
TempEmpty,TempEmpty,TempEmpty,TempEmpty,
TempEmpty,TempEmpty,TempEmpty);关于保存 try
wordapplication1.ChangeFileOpenDirectory('C:\My Documents');
Temp1 := 'b.rtf';
Temp2 := wdFormatDocument;
Temp3 := '';
Temp4 := True;
TempW := False;
WordApplication1.ActiveDocument.SaveAs(Temp1,Temp2,TempW,
Temp3,Temp4,Temp3,TempW,TempW,TempW,TempW,TempW);
wordApplication1.Quit;
WordApplication1.Disconnect;
showmessage('保存成功'); except
on E: Exception do
begin
Showmessage(E.Message);
WordApplication1.Disconnect;
end;
end;大家见笑,交流研究
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, Encoding:=936, InsertLineBreaks:=False, AllowSubstitutions:=False, _
LineEnding:=wdCRLF
在参数中对号入座,是False的对相应的tempn参数赋false,是数字的赋数字