1

Word文書のブックマークを編集するために次のコードを書きました。文書が生成されるとdocが表示されますが、同じ文書を閉じて同じ文書を再度開こうとすると、単語docは次のようなエラーを返します:

1.ファイル/ドライブのファイル権限を確認してください。2.十分なメモリとディスク容量があることを確認してください。

private void GenerateApplication()
{
object readOnly = true;
object repair = false;
object bookMarkName = "applicantName";
object bookMarkCompany = "firmName";
object bookMarkPost = "postName";

fielName = @"C:\Documents and Settings\AllUsers\Desktop\OperateWordFromC#.dotx";


objDoc = wordApp.Documents.Open(ref fielName, ref missingValuesValues, ref readOnly,       ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref repair, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues);

objDoc.Activate();

objDoc.Bookmarks.get_Item(ref bookMarkName).Range.Text = txtApplicantName.Text;       

objDoc.Bookmarks.get_Item(ref bookMarkCompany).Range.Text = txtAppliedCompany.Text;
objDoc.Bookmarks.get_Item(ref bookMarkPost).Range.Text = txtAppliedPost.Text;

string outputFile = @"C:\Documents and Settings\All Users\Desktop\ApplicationOf-" + txtApplicantName.Text + ".docx";

bookMarkName = null;
bookMarkCompany = null;
bookMarkPost = null;

Object objSaveAsFile = outputFile;
Object objFileFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument;

wordApp.ActiveDocument.SaveAs(ref objSaveAsFile, ref repair, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues,  ref missingValuesValues, ref  missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues); 
wordApp.Visible = true;
}
4

1 に答える 1

1

開いているドキュメント ( によって参照されている) には、次のパラメータを持つobjDoc独自のメソッドがあります。詳細については、 Microsoft のドキュメントを参照してください。.SaveAs

objDoc.SaveAs(ref objSaveAsFile, ref objFileFormat, ref objLockComments, 
    ref objPassword, ref objAddToRecentFiles, ref objWritePassword, 
    ref objReadOnlyRecommended, ref objEmbedTrueTypeFonts, 
    ref objSaveNativePictureFormat, ref objSaveFormsData,
    ref objSaveAsAOCELetter, ref objEncoding, ref objInsertLineBreaks,
    ref objAllowSubstitutions, ref objLineEnding, ref objAddBiDiMarks);

したがって、ドキュメントをこの方法で保存します ( を参照する代わりにwordApp.ActiveDocument)。を呼び出す前に、上記の変数を適切に宣言して初期化する必要がありますSaveAs

ドキュメントにアクセスする必要がなくなった場合も ( を使用してobjDoc.Close()) ドキュメントを閉じる必要がありますが、遅くともアプリケーションを閉じる前に閉じてください。

新しく保存したドキュメントを後で再度開いて変更する場合は、.Save()代わりに を使用できます (パラメーターは必要ありません)。

于 2013-09-30T11:05:46.963 に答える