0

Interop.Excel バージョン 12

オフィス エクセル 2007

.xslm ファイルを開き、それを .xslx として変換 (保存) するコードを作成しました。この間に、いくつかの処理も行う必要がありますが、それは問題ではありません。コードは次のとおりです。

namespace Exceltest
{
    class Program
    {
        static void Main(string[] args)
        {

            Application oXL = null;
            oXL = new Application();

            oXL.Visible = false;
            oXL.DisplayAlerts = false;

            try
            {
                Workbook book = oXL.Workbooks.Open("E:\\CorrectPF1.xlsm", 0, true, 5, "access123", "", true,
                                                   XlPlatform.xlWindows, "\t", false, false, 0, true, null, XlCorruptLoad.xlNormalLoad);

                Worksheet worksheet = (Worksheet)book.Sheets["Resource allocation"];
                worksheet.Activate();

                oXL.Visible = false;
                oXL.DisplayAlerts = false;

                book.SaveAs("E:\\PF1.xlsx", XlFileFormat.xlOpenXMLWorkbook,
                                            "", Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange,
                                                XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing,
                                                Type.Missing, false);
            }
            catch (Exception  ex)
            {
             //Handling exception here
            }

        }
    }
}

このコードは問題なく (例外なく) 実行されますが、ファイルは .xslx 拡張子で保存されません。一部のファイルセットでは機能するが、他のセットでは機能しないことがわかりました。たとえば、PF1.xslm という名前のファイルでは機能しません。Office Excel で PF1.xslm を開き、.xslx として保存できます。したがって、同じことがプログラムでも機能すると仮定します。

4

1 に答える 1

0

マクロを含むファイルを .xlsx 形式で保存することはできません。自分でファイルを保存すると、エラー メッセージが表示されます。そのエラーメッセージを表示するのではなく、マクロがあきらめて保存しないのではないかと思います。

于 2011-04-08T08:59:49.157 に答える