2016-05-03 47 views
0

にVBAマクロを変換するとき、次の行を有します。 Documentオブジェクトでは、非常に具体的にはClose()メソッドを使用しています。私は正確に以下の私の質問に答える質問は見つかりませんでした。 Compile time warning when using 'Microsoft.Office.Interop.Word._Document.Close'C#曖昧エラー()WordのVBAは、Iは、C#に変換していますことマクロC#

しかし、私は、私が使用する必要があり、正確なキャストを把握することができませんでしたそれを見て:など、この1として同様の質問があります。

ActiveDocument.Close wdDoNotSaveChanges 

私はこのようなC#にこれを変換する:しかし、私は、次の曖昧エラーを取得し、最後の行に

using Microsoft.Office; 
using Microsoft.Office.Interop; 
using Word = Microsoft.Office.Interop.Word; 

Object oMissing = System.Reflection.Missing.Value; 
Word.Document oWordDoc = new Word.Document(); 

oWordDoc.Close(Word.WdSaveOptions.wdDoNotSaveChanges, oMissing, oMissing); 

明らか

Ambiguity between method 'Microsoft.Office.Interop.Word._Document.Close(ref object, ref object, ref object)' and non-method 'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close'. Using method group.

私はCloseの名前を変更することはできませんWordのメソッド(私は推測する)、私は私のキャストしようとしたoWordDocしかし、何も動作するようです。

誰かがこの権利を行うにはどのようにいくつかの光を当てることができますか?ありがとうございました。

答えて

2

は、そのイベントが含まれていないMicrosoft.Office.Interop.Word._Document、それをキャストします。 `(Microsoft.Office.Interop.Word._Document)oWordDoc.Close(Word.WdSaveOptions.wdDoNotSaveChanges、oMissing、oMissing);`しかし、それはコンパイラエラーを与える:

((Microsoft.Office.Interop.Word._Document)oWordDoc).Close(Word.WdSaveOptions.wdDo‌​NotSaveChanges, oMissing, oMissing); 
+0

はええ、私はこれを試してみました**」 'void'を 'Microsoft.Office.Interop.Word._Document'に変換できません "** – ib11

+0

更新された回答を参照してください。 – niksofteng

+1

@nikhilvartak SLaksに変更を含めるかどうかを尋ねるコメントを残すか、答えとして投稿してください - 他の回答への解決策として編集するべきではありません(あなたが手助けしようとしていて、 ; '私を修正するためのおかげで@Rob'((Microsoft.Office.Interop.Word._Document)oWordDoc).Close(Word.WdSaveOptions.wdDo NotSaveChanges、oMissing、oMissing):あなたはこのようにキャストする必要がありますIB11 @) – Rob

関連する問題