次の方法で共有


Office ソリューションでの Visual Basic を使用したプログラミングと Visual C# を使用したプログラミング

Office ソリューションは、Visual Basic と Visual C# のどちらを使用しても作成できます。 Microsoft Office オブジェクト モデルは VBA (Microsoft Visual Basic for Applications) で使用するようにデザインされているので、Visual Basic 開発者は Microsoft Office アプリケーションで公開されているオブジェクトを容易に操作できます。 Visual Studio 2010 では、Visual C# 開発者は Visual Basic 開発者と同じ機能のほとんどを使用できますが、Office オブジェクト モデルを使用するには、追加のコードを記述することが必要な場合があります。 また、Office 開発における基本的なプログラミング機能と Visual Basic や C# で記述されたマネージ コードとの間にもいくつかの違いがあります。

対象: このトピックの情報は、Microsoft Office 2010 および 2007 Microsoft Office system のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。

Visual Basic と Visual C# の主な相違点

次の表は、Office 開発で Visual Basic を使用する場合と Visual C# を使用する場合の主な相違点を示しています。

機能

説明

Visual Basic のサポート

Visual C# のサポート

省略可能なパラメーター

Microsoft Office のメソッドには、呼び出すときに指定する必要のないパラメーターを持つメソッドが多数あります。 パラメーターの値を渡さない場合は、既定の値が使用されます。

Visual Basic では、省略可能なパラメーターをサポートしています。

Visual C# では、ほとんどの場合に省略可能なパラメーターをサポートしています。 詳細については、「Office ソリューションの省略可能なパラメーター」を参照してください。

パラメーターの参照渡し

大部分の Microsoft Office プライマリ相互運用機能アセンブリにある省略可能なパラメーターは、値によって引き渡すこと (値渡し) ができます。 ただし、一部のプライマリ相互運用機能アセンブリでは、参照型を受け取る省略可能なパラメーターに対して参照渡しを行わなくてはなりません。

値型のパラメーターと参照型のパラメーターの詳細については、「引数の値渡しと参照渡し (Visual Basic)」(Visual Basic の場合) および「パラメーターの引き渡し (C# プログラミング ガイド)」を参照してください。

参照渡しでパラメーターを渡すのに、特別な処理は必要ありません。 Visual Basic コンパイラでは、必要に応じて自動的にパラメーターが参照渡しされます。

ほとんどの場合、Visual C# コンパイラでは、必要に応じて自動的にパラメーターが参照渡しされます。 詳細については、「Office ソリューションの省略可能なパラメーター」を参照してください。

パラメーター化したプロパティ

プロパティの中には、パラメーターを受け取り、読み取り専用関数として動作するものがあります。

Visual Basic では、パラメーターを受け取るプロパティをサポートしています。

Visual C# では、パラメーターを受け取るプロパティをサポートしています。

遅延バインディング

遅延バインディングでは、デザイン時にオブジェクトの型に変数をキャストするのではなく、実行時にオブジェクトのプロパティを決定します。

Visual Basic では、Option Strict がオフの場合に遅延バインディングが実行されます。 Option Strict がオンの場合は、オブジェクトを明示的に変換し、System.Reflection 名前空間内の型を使用して遅延バインディング メンバーにアクセスする必要があります。 詳細については、「Office ソリューションの遅延バインディング」を参照してください。

Visual C# では、.NET Framework 4 を対象とするプロジェクトで遅延バインディングが実行されます。 .NET Framework 3.5 を対象とするプロジェクトでは、オブジェクトを明示的にキャストし、System.Reflection 名前空間内の型を使用して遅延バインディング メンバーにアクセスする必要があります。 詳細については、「Office ソリューションの遅延バインディング」を参照してください。

Office 開発とマネージ コードの主な相違点

次の表は、Office 開発と Visual Basic または Visual C# で作成されたマネージ コードの主な相違点を示しています。

機能

説明

Visual Basic および Visual C# のサポート

配列のインデックス

Microsoft Office アプリケーションでは、コレクションの配列の下限のインデックスは 1 から始まります。 Visual Basic や Visual C# では、インデックス番号が 0 から始まる配列が使用されます。 詳細については、「配列 (C# プログラミング ガイド)」および「Visual Basic における配列」を参照してください。

Microsoft Office アプリケーションのオブジェクト モデルのコレクションの 1 番目のアイテムにアクセスするには、インデックス 0 ではなく 1 を使用します。

参照

処理手順

方法 : プライマリ相互運用機能アセンブリを利用して Office アプリケーションを使用する

Office ソリューションの遅延バインディング

参照

リフレクション (C# および Visual Basic)

概念

Office ソリューションのコードの記述

Office ソリューションの省略可能なパラメーター