方法 : Office アプリケーションが返すオブジェクトをキャストする
更新 : 2007 年 11 月
マネージ コードを記述する場合、既定ではオブジェクトの型を指定する必要があります。しかし、Microsoft Office プライマリ相互運用機能アセンブリの多くのメソッドとプロパティは、いくつかの異なる型を返すことができるため、Object 型を返します。オブジェクトが返されたら、そのオブジェクトを正しい型に明示的に変換する (Visual Basic の場合) か、キャストする (C# の場合) 必要があります。オブジェクトを変換またはキャストすると、コード エディタではオブジェクトに対して IntelliSense が有効になります。
Visual Basic での変換については、「暗黙の型変換と明示的な型変換」および「CType 関数」を参照してください。C# でのキャストについては、「() 演算子 (C# リファレンス)」を参照してください。
次のプロシージャは、Microsoft Office アプリケーションから返されたオブジェクトをマネージ コードで使用するために特定の型にキャストする例です。この例では、Microsoft Office Excel 用のドキュメント レベルのカスタマイズを使用しています。
オブジェクトを特定の型にキャストするには
NamedRange コントロールをセル A1 に追加します。
Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _ Me.Controls.AddNamedRange(Me.Range("A1"), "NamedRange1")
Microsoft.Office.Tools.Excel.NamedRange NamedRange1 = this.Controls.AddNamedRange(this.Range["A1", missing], "NamedRange1");
名前付き範囲の ColumnWidth プロパティから返されるオブジェクトを Double にキャストして変数に代入します。
ColumnWidth プロパティの基になる値は 10 進値ですが、このプロパティは値を Object 型として返します。10 進値を直接操作するためには、Object を Double にキャストする必要があります。
Dim width As Double = CType(NamedRange1.ColumnWidth, Double)
double width = (double)NamedRange1.ColumnWidth;
NamedRange コントロールの列幅をダイアログ ボックスに表示します。
MessageBox.Show("Column width: " & width.ToString())
MessageBox.Show("Column width: " + width.ToString());
参照
概念
マネージ コードおよび Visual Studio を使用した Office プログラミング