2012-03-01 22 views
0

最初に問題を説明しましょう。私は、単語の文書を開き、すべてのフィールドを更新し、別のフォルダに文書を保存するこのアプリケーションを持っています。文書という単語は、レポートのテンプレートとして使用されます。これは、Excelワークシートからのリンクされたコンテンツで満たされています。アプリケーション全体が動作しますが、問題はExcelドキュメントがパスワードで保護されていることです。ドキュメントフィールドを更新するとアプリケーションが停止し、wordがパスワードを要求します。更新されたパスワードで保護されたC#のリンクワードドキュメント

パスワードを入力すると、プログラムは広告されたとおりに動作します。何度も挿入する必要があります。理由は分かりません。しかし、プログラムはユーザーの入力なしで自律的に作業することを想定しています。コードを入力するかパスワードを入力する必要がないようにパスワードを入力する方法はありますか?

以下は、その中にC#

Microsoft.Office.Interop.Word.Application ap = new Microsoft.Office.Interop.Word.Application(); 
     Document doc = ap.Documents.Open(template, ReadOnly: false, Visible: false); 
     doc.Activate(); 
     red_debug.AppendText("opening " + template + "\n"); 
     doc.Fields.UpdateSource(); 
     doc.Fields.Update(); 
     red_debug.AppendText("Saving as " + final + "\n"); 
     doc.SaveAs(final, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument); 
     doc.SaveAs(path + "\\" + name, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF); 
     red_debug.AppendText("Closing word" + "\n"); 
     doc.Close(); 
     ap.Quit(); 

答えて

0

Word文書を開いて、毎回Excelファイル(パスワード付き)を開くようにします。同時に、WordからExcelファイルを正常に閉じることもできます。

これをWordマクロ領域に挿入します。

Private Sub Document_Open() 

Dim xlApp As Object 
Dim xlWB As Object 
Dim myRange 

Application.DisplayAlerts = wdAlertsNone 

Set xlApp = CreateObject("Excel.Application") 
Set xlWB = xlApp.Workbooks.Open("C:\ExcelFile.xls", , , , "password", "password") 
Set myRange = Selection.Range 

    Selection.WholeStory 
    Selection.Fields.Update 
    myRange.Select 

xlApp.Quit 
Set xlWB = Nothing 
Set xlApp = Nothing 

Application.DisplayAlerts = wdAlertsAll 

End Sub 

これは、Excelドキュメントを開くと、Word文書のすべてのフィールドを更新し、

+0

これをwordマクロにどのように追加しますか?申し訳ありませんが、私はそのことについて言葉のマクロやビジュアルベーシックの経験が全くありません。 – blackwolfsa

+0

@blackwolfsaプログラムの一部を使用するWord文書を開きます。次に、 'alt-F11' int VBA。左側で、文書名を展開し、[この文書]をダブルクリックします。上記を貼り付けて保存して終了します。 –

+0

パスワードを更新しても依頼してください。私は正しいパスワードに部分的に秀でるようにパスワードを変更しました。 – blackwolfsa

0

は、私はあなたが引数としてパスワードを渡すことでdoc.Unprotect(ref Object password)を呼び出そうとすることができると思うこれを実行する私の現在のコードです。

MSDNの thisに関する記事(CodeProjectおよびthis)をご覧ください。

+0

document.unprotectが文書にパスワードを削除することで、パスワードを尋ねてはずのだろう。アプリケーションが開く文書にはパスワードがありません。グラフを含むExcel文書があります。私がそれを開くと、wordが更新された情報を求めるときにパスワードを尋ねます – blackwolfsa

関連する問題