0

Microsoft.Office.Interop.Excel を使用して、C# で Excel ファイルにデータを書き込んでいます。Excel 2010 を使用しているため、Microsoft Excel 14.0 Object Library を参照として追加しました。ただし、Excel 2003 以降でプログラムを動作させる必要があります。そのため、Microsoft Excel 14.0 Object Library への参照を削除し、マシンにインストールされている Excel のバージョンを確認して、その COM オブジェクト ライブラリを使用する方法を探しています。

現在、このコードを使用してバージョンを確認していますが、「2010」ではなく「2007」が返されます。私は何を間違っていますか?

 namespace OfficeVersionCheck
{
    using System;
    using Microsoft.Win32;

    class Program
    {
        static void Main(string[] args)
        {
            RegistryKey localMachine = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Office\");

            string version = string.Empty;

            foreach (string key in localMachine.GetSubKeyNames())
            {
                if (key == "11.0")
                    version = "2003";
                else if (key == "12.0")
                    version = "2007";
                else if (key == "14.0")
                    version = "2010";

                if (!string.IsNullOrEmpty(version))
                {
                    break;
                }
            }

            Console.Write(version);

            Console.ReadKey();
        }
    }
}

バージョンを確認したら、その COM オブジェクト ライブラリをロードしてプログラムで使用する必要があります。これを行う方法はありますか?どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1