次の方法で共有


方法 : Excel ソリューションをローカライズする

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • ドキュメント レベルのプロジェクト

Microsoft Office のバージョン

  • Excel 2003

  • Excel 2007

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

ローカリゼーションは、主にアプリケーションのユーザー インターフェイスを翻訳する作業から構成されます。文字列は、アプリケーションにハード コーディングするのではなく別のファイルに保存します。Microsoft Office Excel ユーザー インターフェイス要素に使用される文字列をプロジェクトの既定のアセンブリ リソース ファイルに保存できます。このファイルの名前は、Visual Basic プロジェクトでは MyResources.resx、C# プロジェクトでは Resources.resx です。リソース ファイルのコピーは、複数の言語に翻訳できます。

ms178762.alert_note(ja-jp,VS.90).gifメモ :

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピュータでは名前や場所が異なる場合があります。これらの要素は、使用する Visual Studio のエディションとその設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。

リソース ファイルへのテキストの保存

テキストをリソース ファイルに追加するには

  1. ローカライズする Excel プロジェクトを開きます。

  2. [プロジェクト] メニューの [<プロジェクト名> プロパティ] を選択します。

    プロジェクト デザイナが開きます。

  3. プロジェクト デザイナ[リソース] をクリックして リソース ペインを開きます。

  4. [カテゴリ] ボックスの一覧の [文字列] をクリックします。

  5. ローカライズする文字列ごとに、一意の識別子を [名前] 列に追加し、ローカライズ対象のテキストを [値] 列に追加します。たとえば、次のように指定します。

    名前

    ListCreateUnscheduledOrder

    create unscheduled order

    ms178762.alert_note(ja-jp,VS.90).gifメモ :

    [コメント] 列には、翻訳者向けのメモや指示を入力できます。

リソース ファイルからのテキストの取得

各文字列をリソース ファイルに追加した後で、文字列を実行時に読み込むことができます。

リソース ファイルを使用して値をセルに追加するには

  1. Sheet1 の Startup イベント ハンドラで、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");
    
  2. 値をリソース ファイルから割り当てます。

    namedRange1.Value2 = My.Resources.ListCreateUnscheduledOrder
    
    namedRange1.Value2 = Properties.Resources.ListCreateUnscheduledOrder;
    

リソース ファイルのローカライズ

リソース ファイルをローカライズするには

  1. リソース ファイルをコピーし、ターゲット言語のカルチャ コードを使用して名前を付けます。たとえば、日本語にローカライズするファイルを作成するには、Resources.resx ファイルをコピーし、ファイル名を "Resources.ja.resx" とします。

  2. リソース ファイルを、サポートする言語に翻訳します。たとえば、Resources.ja.resx 内の文字列を日本語に翻訳します。

  3. 翻訳したリソース ファイルをプロジェクトに追加して、リソース ファイルがプロジェクト システムによってサテライト アセンブリにコンパイルされるようにします。

Office ユーザー インターフェイス言語に基づいたリソースの読み込み

Microsoft .NET Framework は、Microsoft Windows ユーザー インターフェイス言語に基づいてリソースを読み込みます。ただし、ほとんどの Office ベースのソリューションは、Office ユーザー インターフェイス (UI) 言語に基づいてリソースを読み込むように作成されます。次に示す最初の例は、インストールされている Office のバージョンにかかわらず、Office UI 言語に一致するリソースを読み込みます。2 番目の例は、Office UI 言語と Microsoft .NET Framework の既定の動作を両方ともオーバーライドします。

Office (複数の言語バージョンの Office) に基づいてリソースを読み込むには

  • ブックと各ワークシートの Startup イベント ハンドラに次のコードを追加します。

    System.Threading.Thread.CurrentThread.CurrentUICulture = _
        New System.Globalization.CultureInfo( _
            Application.LanguageSettings.LanguageID( _
                Office.MsoAppLanguageID.msoLanguageIDUI))
    
    System.Threading.Thread.CurrentThread.CurrentUICulture =
        new System.Globalization.CultureInfo(
            Application.LanguageSettings.get_LanguageID(
                Office.MsoAppLanguageID.msoLanguageIDUI));
    

Office に複数の言語バージョンがない場合は、CultureInfo オブジェクト (または現在のスレッドのオブジェクト) の CurrentCulture プロパティに適切なカルチャ ID を設定することでリソースの読み込みを強制できます。この方法は、デバッグ時や、読み込むリソースをユーザーが選択できるようにするカスタム コードを作成する場合に便利です。

Office に基づいて (カルチャ ID を使用して) リソースを読み込むには

  • ブックと各ワークシートの Startup イベント ハンドラに次のコードを追加します。この例では、ドイツ語 (ドイツ) のカルチャ ID を渡します。カルチャ ID の一覧については、CultureInfo を参照してください。

    System.Threading.Thread.CurrentThread.CurrentUICulture = _
        New System.Globalization.CultureInfo("de")
    
    System.Threading.Thread.CurrentThread.CurrentUICulture = 
        new System.Globalization.CultureInfo("de");
    

カスタム コントロールのローカライズ

Visual Studio Tools for Office ソリューションでは、カスタム コントロールを操作ウィンドウに追加できます。ユーザー コントロールや操作ウィンドウ コントロールをローカライズする方法は、Windows フォームをローカライズする場合と同じです。詳細については、「チュートリアル : Windows フォームのローカリゼーション」を参照してください。

カスタム コントロールをローカライズ可能にするには

  1. [表示] メニューの [プロパティ ウィンドウ] をクリックします。

  2. デザイナでユーザー コントロールまたは操作ウィンドウ コントロールを選択し、Localizable プロパティを true に変更します。

参照

処理手順

チュートリアル : Windows フォームのローカリゼーション

概念

Office ソリューションのグローバリゼーションとローカリゼーション

その他の技術情報

アプリケーションのグローバライズとローカライズ

アプリケーションのローカライズ