Excelマクロ xlms から別ファイルのexcel xlsx への実行

xlmsで作成したマクロを別のexcelに対して実行を考えています。
マクロの内容は、excelシートの書式等の設定です。
主となるマクロは、xlms上のシートでは動作します。
ワークフローは多数のexcelに対して同様の書式設定です。
for eachでexcelを読み込み処理予定です。

その前に、xlmsで作成したマクロが別のexcelで動作するか検証しています。
対象のexcelの拡張子は,xlsxです。
まず1件のexcelに対して実行できるか試してみました。

uipath flow

Excel application scope > xxx.xlsm をターゲット
do:Excel application scope > yyy.xlsx
do:Execute macro > “xxx.xlsm !マクロ名”
save workbook

以上が検証フローです。

エラー内容が、
Execute macro : マクロ ‘xxx.xlsm!macro2’ を実行できません。
このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。

となります。

マクロ実行の対象となるファイルは、複数シートをuipathでシートからファイルに処理したものです。
シートは1つのみです。
マクロでは、ファイル名・シート名は記述せず表示されたシートに対しての処理です。

教えて頂きたく思います。

Excelのセキュリティ上、外部からのマクロ実行は色々と制限がかかります。

マクロのコードを見ていないので断言はできませんが、Excel側の設定で、
ファイル > オプション > セキュリティセンター > マクロの設定
で、
「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェックをいれると、動作する………かもしれません。

ただ、これはそのままセキュリティ的な抜け穴を作ることでもあるので、使用するPCの重要度その他によってはリスクのほうが大きくなります。
セキュリティ管理者とも相談の上で、他の方法で代用できないか検討してみてください。

2 Likes