2016-12-02 7 views
1

フォームのコンテキストメニューからMicrosoft Word文書を作成しようとしていますが、Microsoft Word用の参照とインポート文を追加するとフォームコードにエラーが発生するという問題があります。特定のシンタクスのようなものは、Wordライブラリを参照するときに何か他のものを意味します。だから、私はこれらのシンセックスの代わりに、またはコードで何も変更せずにWordリファレンスを使用する方法を提案する必要があります(モジュールや新しいクラスでImportsステートメントを試しましたが、うまくいきません)。Microsoft Wordライブラリリファレンス - コード内の干渉

Dim ptLowerLeft As New Point(-62, btnSender.Height) 'A code for setting position of Listview under button - "Point" is what gets error 

ListView1.View = View.Details 'Changing view of my Listview - "Details" get's error : "Details is not a member of View (Microsoft.Office.Interop.Word.View) 

リファレンスが私の形で輸入Microsoft.Office.Interop.Word文で、Microsoft Wordの15.0オブジェクトライブラリである:ここでのエラーを取得する私の線です。

どうすればよいですか?

+2

View.Detailsで「表示」であるオブジェクトのどのタイプ? InteropからDetailsというメンバを取得しています。View.Detailsを完全に修飾すると、問題は発生しません。 – soohoonigan

+0

その 'System.Windows.Forms.View'列挙型@soohoonigan – Plutonix

+0

@soohoonigan、情報ありがとうございます。はい、それはsystem.windows.forms.viewです。とにかく、私が今行ったことは、「Imports Microsoft.Office.Interop.Word」を「Imports Microsoft.Office.Interop」に変更しただけで、すべてのエラーは発生せず、Word文書が作成されます。私はどこか別の問題を経験しようとしていますか? – LuckyLuke82

答えて

1

問題ここでは、タイプPointViewMicrosoft.Office.Interop.Wordにし、System.Windows.FormsまたはSystem.Drawing名前空間の両方に存在することです。これらの名前空間のすべてをインポートすると、コンパイラはコード内で使用する型を一意に識別できなくなります。

  • インポートしないでください、名前空間の一つと完全修飾名を使用します。

    は、この競合を解決するには2つの方法があります。あなたのケースでは、Microsoft.Office.Interop.Word名前空間のインポートを省略して、相互運用型を使用するときに完全な型名を使用することができます。

    Imports System.Drawing 
    Imports System.Windows.Forms 
    
    ' in your code you can address Word types using the fully-qualified name: 
    Dim app as New Microsoft.Office.Interop.Word.Application 
    Dim doc as Microsoft.Office.Interop.Word.Document = app.Documents.Add() 
    
  • 最初のオプションは、どこでも完全修飾型の名前を使用する必要があるため、乱雑になります。これは、名前空間のエイリアスを使用して単純化することができます。

    Imports System.Drawing 
    Imports System.Windows.Forms 
    Imports Word = Microsoft.Office.Interop.Word 
    
    ' in your code you can address Word types using the alias: 
    Dim app as New Word.Application 
    Dim doc as Word.Document = app.Documents.Add() 
    
+0

ありがとう、非常に便利です。私はあなたの2番目の提案が好きです、私はこれのように参照できることを知りませんでした。 – LuckyLuke82

関連する問題