方法: Visual C# .NET を使用して COM オブジェクト (System.__ComObject) の種類を確認します。

概要

Microsoft.NET Framework で COM オブジェクトのGetType.Type演算子は、 System.__ComObjectクラスに戻ります。コーディングの一部のシナリオでは、オブジェクトの特定のクラスを知っている必要があります。などの Microsoft Excel のオートメーション クライアントは、ユーザーが Excel で選択したオブジェクトの種類を決定する必要があります。


Microsoft Visual C# .NET で、 as演算子は、null 例外が発生するのではなく、変換エラーを返すことを除いて、キャスト演算子に似ています。As演算子を使用すると、特定の種類と COM オブジェクトを比較します。キャストには null を返すされません、する場合、変換は成功します。

次のステップ バイ ステップの手順では、Visual C# .NET を使用して COM オブジェクトの種類を確認するのには、 as演算子を使用する方法について説明します。


ステップ バイ ステップ

  1. Visual C# .NET で新しい Windows アプリケーション プロジェクトを作成します。デフォルトで Form1 が作成されます。
  2. Microsoft Excel オブジェクト ライブラリへの参照を追加します。これを行うには、以下の手順を実行します。
    1. [プロジェクト] メニューの [参照の追加をクリックします。
    2. 参照の追加] ダイアログ ボックスで、[ COM ] タブをクリックしてMicrosoft Excel のオブジェクト ライブラリでは、し、[選択] をクリックします。

      注: Microsoft Office 2003年には、プライマリ相互運用機能アセンブリ (Pia) が含まれています。Microsoft Office XP Pia は含まれませんが、それらをダウンロードすることがあります。
      Office XP Pia の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

      328912 INFO: Microsoft Office XP Pia のダウンロードの時間があります。

    3. 選択内容を受け入れ、[ OKを] をクリックします。
  3. [表示] メニューで、ツールボックス] を選択し、Form1 にボタンとテキスト ボックスを追加します。
  4. フォームのコード ウィンドウを表示するには、Form1 をダブルクリックします。
  5. Form1_Load ハンドラーを交換してください。
    private void Form1_Load(object sender, System.EventArgs e){
    }

    次の通りに。
    Excel.ApplicationClass oExcel;Excel.Workbooks oBooks;
    Excel.Workbook oBook;

    private void Form1_Load(object sender, System.EventArgs e)
    {
    //Start Microsoft Excel with a new workbook and give control
    //to the user.
    oExcel = new Excel.ApplicationClass();
    oBooks = oExcel.Workbooks;
    oBook = oBooks.Add(System.Reflection.Missing.Value);
    oExcel.Visible=true;
    oExcel.UserControl=true;

    //Layout the controls on Form1 and set up the Click event
    //handler for the button.
    textBox1.Text ="";
    textBox1.Width = 200;


    button1.Text = "Get Selection";
    this.button1.Click += new System.EventHandler(this.ButtonClick);
    }

    private void ButtonClick(object sender, System.EventArgs e)
    {
    object o = oExcel.Selection;

    //Display a message about the selection type in Excel.
    if((o as Excel.Range)!=null)
    {
    textBox1.Text = "Selection is Excel.Range";
    }
    else if((o as Excel.Rectangle)!=null)
    {
    textBox1.Text = "Selection is Excel.Rectangle";
    }
    else if((o as Excel.ChartObject)!=null)
    {
    textBox1.Text = "Selection is Excel.ChartObject";
    }
    else if((o as Excel.ChartArea)!=null)
    {
    textBox1.Text = "Selection is Excel.ChartArea";
    }
    // ... There are many additional Selection types you could check for if needed ...
    else
    {
    textBox1.Text = "Selection is Unknown";
    }

    }

  6. コード モジュールに次のUSINGステートメントを追加します。
    using Excel = Microsoft.Office.Interop.Excel;

お試しください。

  1. F5 キーを押してビルドし、プログラムを実行します。フォームが読み込まれると、新しいブックを Microsoft Excel が起動します。
  2. 両方確認できるように、Form1 と Excel のアプリケーション ウィンドウを配置します。
  3. Excel では、ブック内の任意のセルをクリックします。
  4. Form1 上の選択範囲を取得] をクリックします。テキスト ボックスには、「選択範囲が Excel.Range」が表示されます。
  5. Excel で [挿入] メニューのグラフ] をクリックし、グラフ ウィザードで [完了] をクリックします。
  6. Form1 上の選択範囲を取得] をクリックします。テキスト ボックスには、"選択範囲が Excel.ChartArea"が表示されます。
  7. Excel では、ブック上の四角形を描画し、四角形を選択し、します。

    注: ワークシートに四角形を描画するのには、[図形描画] ツールバーの四角形コントロールを使用できます。
  8. Form1 上の選択範囲を取得] をクリックします。テキスト ボックスには、"選択範囲が Excel.Rectangle"が表示されます。
プロパティ

文書番号:320523 - 最終更新日: 2017/02/01 - リビジョン: 1

フィードバック