下記Microsoftサポートページに記載の通り、非対話型オートメーション(ユーザーがOSにログオンしない状態)でのマクロ実行などはMicrosoftのサポート対象外で、Microsoft 製品に対するライセンス違反にも該当する可能性もあり、実装は推奨しておりません。
そのため非対話型オートメーションの実装についてはお客様判断となります。
Microsoftサポートページ(外部):Office のサーバーサイド オートメーションについて
弊社で確認できている範囲では、下記3例の設定でWindowsサービスに登録したRSにてロボットによるExcelマクロ実行が可能となる場合があります。
① 仮想デスクトップフォルダを作成する
※RSを起動するユーザーに、仮想デスクトップフォルダへのアクセス権限を設定してください。
<作成するフォルダ>
■32BitOSで、32Bit版Excelを実行する、または64BitOSで、64Bit版Excelを実行する場合
%SystemRoot%\System32\config\systemprofile\Desktop
■64BitOSで、32Bit版Excelを実行する場合
%SystemRoot%\SysWOW64\config\systemprofile\Desktop
② ファイルシステム・コマンドラインアクセス許可を設定する
RoboServer Settingsの「セキュリティ(Security)」タブ内にある「ファイルシステムとコマンドラインのアクセスを許可(Allow File System and Command Line Access)」項目にチェックを入れてください。
※WindowsサービスからRSを起動している場合、サービスの実行ユーザーでログインして、本設定を実施するが必要あります。
③ 管理者権限でマクロ実行(RSを起動)する
WindowsサービスからRSを起動している場合、Windowsサービスの起動ユーザーに管理者権限が付与されている必要があると推測されます。
ユーザーに管理者権限が付与されているかは「whoami/groups」コマンドで確認できます。下記実行例を参考にしてください。
下記例の場合、「BUILTIN\Administrators」の属性が「拒否のみに使用するグループ」となっていますが、デフォルトで存在するAdministratorなど、管理者権限があるユーザーの場合「有効なグループ」として表示されます。
【whoami /groupsコマンド 実行例】
GROUP INFORMATION
-----------------
グループ名 種類 SID 属性
====================================== ==================== =========================================== ========================================
Everyone よく知られたグループ ******* 固定グループ, 既定で有効, 有効なグループ
BUILTIN\Administrators エイリアス ******* 拒否のみに使用するグループ
BUILTIN\Users エイリアス ******* 固定グループ, 既定で有効, 有効なグループ
:
補足
■本件の検証中に弊社の検証環境で発生した事象
① VBA内で「Environ」関数を使用する形で何らかのファイルパスを指定すると、
下記エラーが発生してマクロ実行ができませんでした。なお、フルパスで指定すれば回避可能です。
Microsoft Excel: マクロ '{マクロ名}' を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。
■関連問い合わせ事例にて確認した追加対処
② 先述の3つの条件(仮想デスクトップフォルダ作成、アクセス許可、管理者権限で実行)を見直しても
マクロ実行に失敗するケースで、3つの条件に加えて次の点を見直したところ実行に成功したケース
が確認されました。
・RSサービスの実行ユーザを、Office365のライセンス認証を行っているユーザへ変更する。
当該事例ケースでは、RSサービスの実行ユーザとOffice365のライセンス認証を行うユーザが別々の
ケースでしたが、RSサービスの実行ユーザを、ライセンス認証を行うユーザへ変更し、3つの条件の
対処を認証ユーザに改めて実施したところ、サービス起動RSからのマクロ実行に成功したことが確認
されました。これはExcel側の何等かの仕様が影響したものと推定されますが、他社製品であるため
詳細は不明です。
参考記事
・ロボットの実行権限について
・MCからの「Execute Command Line(コマンド ライン実行)」ステップの実行でエラーとなる場合の確認事項
・BizRobo!でExcelマクロを利用する上で必要な考慮ポイント