3

Delphi6とWord2010を使用してWord97-2003ドキュメント(.doc)を保存しようとしています。

Word 2010より前は、すべてが正常に機能していました

WordDoc.SaveAs(FileName := FileName, FileFormat := wdFormatDocument);

どこFileName := 'c:\doc.doc'

現在、Word 2010には保存ダイアログが表示されますが、その理由はわかりません。新しいSaveAs2メソッドを試しました

WordDoc.SaveAs2(FileName := FileName, FileFormat := wdFormatDocument, CompatibilityMode:= wdWord2003);

しかし、同じ結果になります。

奇妙なことに、

WordDoc.SaveAs2(FileName := FileName, FileFormat := wdFormatDocumentDefault, CompatibilityMode:= wdWord2003);

[名前を付けて保存]ダイアログがなくても正常に機能しますが、保存されたファイルにはWord 2010形式と.doc拡張子が付いているため、古いバージョンのWordは混乱します。

では、Word 2010を使用して、[名前を付けて保存]ダイアログを表示せずに古いドキュメントのWord形式でファイルを保存する方法はありますか?

4

2 に答える 2

2

@David Heffernan:ええと、短いデモンストレーションプログラムを書くことで私の問題は解決しました。

元のプログラムは*.mhtmlファイルを開き、それをdoc形式に変換しようとしました。そしてそこで私は問題を抱えていました。新しいドキュメントを作成するときは、問題なく任意の形式で保存できます。そのため、おそらく問題は、非ネイティブ形式から別の非ネイティブ形式に保存したことだと思いました。

したがって、私の解決策は、それを2回保存することでした。最初はネイティブ形式で、次に古い形式で保存します。

procedure SaveDocFile(WordDoc: Variant; FileName: string);
const wdFormatDocumentDefault=16;
begin
  WordDoc.ActiveWindow.View.Type := wdPrintView;
  if WordDoc.Application.Version='14.0' then
  begin
    WordDoc.SaveAs2(FileName := FileName, FileFormat := wdFormatDocumentDefault);
    WordDoc.SaveAs2(FileName := FileName, FileFormat := wdFormatDocument);
  end
  else
    WordDoc.SaveAs(FileName := FileName, FileFormat := wdFormatDocument);
end;
于 2013-01-24T09:47:57.417 に答える
0

ファイル形式の定数のリスト:

wdFormatDocument                    =  0
wdFormatDocument97                  =  0
wdFormatDocumentDefault             = 16
wdFormatDOSText                     =  4
wdFormatDOSTextLineBreaks           =  5
wdFormatEncodedText                 =  7
wdFormatFilteredHTML                = 10
wdFormatFlatXML                     = 19
wdFormatFlatXMLMacroEnabled         = 20
wdFormatFlatXMLTemplate             = 21
wdFormatFlatXMLTemplateMacroEnabled = 22
wdFormatHTML                        =  8
wdFormatPDF                         = 17
wdFormatRTF                         =  6
wdFormatTemplate                    =  1
wdFormatTemplate97                  =  1
wdFormatText                        =  2
wdFormatTextLineBreaks              =  3
wdFormatUnicodeText                 =  7
wdFormatWebArchive                  =  9
wdFormatXML                         = 11
wdFormatXMLDocument                 = 12
wdFormatXMLDocumentMacroEnabled     = 13
wdFormatXMLTemplate                 = 14
wdFormatXMLTemplateMacroEnabled     = 15
wdFormatXPS                         = 18
wdFormatOfficeDocumentTemplate      = 23
wdFormatMediaWiki                   = 24
于 2013-07-09T12:23:53.227 に答える