Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【Uipath】 XLSTARTに設定したマクロを別ファイルから呼び出せない

More than 1 year has passed since last update.

XLSTARTに設定したマクロを別ファイルから呼び出せない

今回の記事を書くに至った経緯

ある案件で「エクセルマクロの実行を自動化してくれ!」と言われ、別の案件で既にマクロを実行するロボットは作成した経験はあったので、簡単だなと思いながら作成を始めたわけです。

状況

デスクトップに保存されているAというエクセル通常ファイルを起動し、「XLSTART」に保存されているBのマクロファイル内にあるマクロを実行するという内容。
※XLSTARTについては下記を参照してください。
Excel の起動方法をカスタマイズする

ロボとしてはAをExcel Application scopeで開き、Execute macroアクティビティでBの関数「B.xlsm!マクロ」を実行してみました。
ですがこのようなエラーが出て実行できません。

image.png

手作業で実行して時は何もエラーが出なかったのに、ロボで動かすとこの様なエラーが出る。

試した事

image.png

こんな感じでマクロ実行までに10秒の間隔を置いたがダメ。

他にもマクロのセキュリティの設定や、Start Application で起動してからマクロ実行をしようとしたが、そもそもAエクセルが2回開いてしまうのでダメ。

原因

そもそも手作業でAを開くと裏側でBマクロファイルも起動しているように見えるのに、ロボだとBが起動していないように見えました。
ここが原因かなと思い、一度手作業でBマクロファイルを立ち上げた状態でロボットでAを立ち上げてマクロ実行をしてみたところ問題なく実行されました。

このような事からおそらくロボットでエクセルを実行した時には「XLSTART」での自動実行が正常に機能しないと判断しました。

解決策

BマクロファイルをStart applicationで起動したあと、Aエクセルを起動してマクロを実行する手順も考えたのですが、エクセルが2個開かれるのでスコープなどがずれたらエラーが起きやすそうだなと思い却下。

結果として解決方法はUipath側の工夫ではないですが、Bのマクロの内容を見たところ特にそのファイルで実行される理由は見受けられないので、Aファイルにモジュールをインポートして、Bマクロを使わずA単体でマクロを実行するよう業務も変更してもらいました。

結果として管理するファイルが減るのし、何年後かに「XLSTART」??なんじゃそりゃとなるのも怖いので。

sho14kim
現在外資系SESにてWeb系案件に参画して1年弱。 Node.js,Python,Typescript,Rubyを使用中。 環境はGCPを自由に触らせてもらっているので、コンテナ運用とCICDをゴリゴリに検証しまくってます。 以前はRPA開発を1年とヘルプデスクを2年してました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away