はじめに
現在、RAPを実務で行っていますが、まだまだまだまだ経験が浅く、日々勉強中です。
本記事については、自身の備忘録も含め同じ様な所で頭を抱えている方に対して、
少しでもヒントになり、先に進める力となれれば良いなと思い記事にしましたーー!
今回のTips
今回の内容はTipsというか自分が経験した事で、当時は大変苦労しましたので、同じ思いをしてほしくなく思い、記事にしました。
要件調整の時に、この知識があれば、あんなに開発に時間がかからなかったのに…
Tips概要
今回のTipsはすごくシンプルなのですが、ロボットが既存のExcelファイルに対し値を貼り付ける処理をする際に、貼り付け先のExcelファイルに関数が入っていると、処理がすごく重くなるという内容です。
Tips詳細
これは、実体験からお話をしようと思うのですが、
要件を聞いたときは、すごくシンプルなロボットでした。毎週データが更新されるファイルの値を取得し、自分の部署のみで使用しているExcelファイルへ内容を転記し、会議などでそのファイルを使っているという内容でした。この自部署のみというのが肝だったのですが、あまり気にせずにスルーしていました。
それから、実際に各ファイルを頂き、開発を進めた所、値の取得は問題ないですが、既存ファイルへの貼り付けに、すごく時間がかかる状況が発生しました。
普段であれば、1秒かからない貼り付け処理が、その時は30秒ぐらいかかっていました。データ転記数が少なければよかったのですが、何万行の転記が必要でしたのそんな時間がかかっていたら話にならないので、調べたところ、貼り付け先のExcelファイルに自分たちが使いやすいように、たくさんの関数が使われている事が発覚しました。
結果としては、既存のファイルに貼り付けるための、別ファイルをロボットが新規で作成し、あとはお客様でハンド対応していただく形になりました。
(書きながら、あまり良い解決方法ではなかったなと思いますが…)
では、なぜ貼り付け先のファイルに関数が含まれていると重くなるのかですが、
knowledgeでは見つけられなかったので、あくまで個人的な見解として、貼り付け処理をする際に関数を読込なおしているのではないかと思います。
なので、関数の数が多ければ多いほど、貼り付けた時の処理時間が長くなってしまうんだと思います。
まとめ
今回は、貼り付け先にExcel関数があると、めっちゃ重くなるについてお話をしました。
皆さんが今後要件調整の際に、既存Excelファイルへの転記といったワードが出てきましたら、先に見せてもらう事をお勧めします。