none
OLEを使用したExcelのマクロ呼び出しに関して

    質問

  • (環境) Windows7x64 Excel2016 VisualStudio2012 .Net4.6.1

    (Excel設定)

    Excelの設定ではマクロの設定は全てのマクロを有効、VBAオブジェクトのアクセスの信頼にチェックしています。

    上記の環境下で、C++からOLEを使用してExcelのマクロを実行しています。

    この状態では正常に動作するのですが、

    Excelの設定のセキュリティを強化し、警告を表示せずに全てのマクロを無効に設定を変更し、

    信頼出来る場所に、該当ExcelファイルとC++が配置されたディレクトリパス(サブフォルダ含む)を設定して

    C++から呼び出そうとするとマクロが無効化されている為実行不可能のエラーが表示されます。

    Excelを起動してマクロから実行するとマクロ自体は実行可能です。

    外部からの呼び出しの場合は、信頼出来る場所に追加していも不可能なのでしょうか?

    または呼び出し時に何かしらの設定を追加することによって対応出来るのでしょうか?

    よろしくおねがいします。

    void sample()
    {
        CString macro;
        macro.Fromat("MacroName");
        // 中略
        Excel::_ApplicationPtr excelApp;
        // 中略
        excelApp->Run(macro,  (略));
    }

    Excelの設定で全てのマクロを有効化
    Excelの設定で全てのマクロを有効化
    2018年6月20日 4:51