既定では、Microsoft Office Excel のホスト コントロールは、マネージ コードを使用して渡されるデータや操作されるデータがすべて英語 (米国) の書式で設定されている限り、Windows のどの地域設定でも正常に動作します。 .NET Framework 4 を対象とするプロジェクトでは、この動作は共通言語ランタイム (CLR: Common Language Runtime) によって制御されます。 .NET Framework 3.5 を対象とするプロジェクトでは、プロジェクトの Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute が true に設定されている場合にこの動作が有効になります。 詳細については、「さまざまな地域設定を使用した Excel のデータの書式設定」を参照してください。
対象: このトピックの情報は、Excel 2007 と Excel 2010 のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute を false に設定した場合、エンド ユーザーが英語版の Excel を使用していて、Windows の地域設定が英語 (米国) 以外の地域に設定されていると、ホスト コントロールは正常に動作しません。 この問題は、多言語ユーザー インターフェイス (MUI) パックをインストールすると解決できます。
.NET Framework 3.5 を対象とするプロジェクトで ExcelLocale1033Attribute が False の場合
データ バインディングやイベントなどの Excel のホスト コントロール機能は、プライマリ相互運用機能アセンブリ (PIA: primary interop assemblies) を使用して Microsoft Office Excel オブジェクト モデルを呼び出すことで動作します。 "en-US" 以外の環境の英語バージョンの Excel でソリューションを実行する場合、ユーザーのホスト コントロールに対する操作により、COM オブジェクト モデルをプログラムで明示的に呼び出した場合と同じエラーが発生する可能性があります。
たとえば、NamedRange コントロールをダブルクリックしても、このコントロールの BeforeDoubleClick イベントが発生しないことがあります。これは、イベントが名前付き範囲内で発生したかどうかを確認するために、Excel オブジェクト モデル内のメソッドが呼び出されるためです。 このメソッド呼び出しに渡されるロケールが英語 (U.S.) 以外の場合、メソッドはエラーになり、イベントは発生しません。 ローカライズされたバージョンの Excel を使用するか、英語バージョンの Excel と MUI パックを使用すると、このようなエラーは起こりません。
参照
処理手順
方法 : リフレクションを使用して Excel 内のリテラル文字列を領域保護する
概念
さまざまな地域設定を使用した Excel のデータの書式設定