次の方法で共有


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

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

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

注意

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

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

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

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

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

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

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

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

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

    名前

    ListCreateUnscheduledOrder

    create unscheduled order

    注意

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

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

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

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

  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");
    

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

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

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

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

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

参照

処理手順

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

概念

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

その他の技術情報

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

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