画像認識RPAで頑張るか、CSV吐き出しで逃げるか。現場で勝ちやすいのはどっちか

「仕事が自動化される」という響きは魅力的です。毎日残業に追われる会社員には魔法のように聞こえます。私もその魔法を信じました。そしてRPAの導入に踏み切った一人でした。特に画像認識を使った自動化は簡単です。画面上のボタンを指定するだけで動きます。魔法の杖を手に入れたような感覚でした。

しかし数ヶ月後、その魔法は呪いへと変わります。ある朝出勤するとロボットがエラーを吐いていました。昨日まで元気に動いていたロボットです。まるで機嫌を損ねたかのようでした。原因を調べてみました。それは技術的な不具合ではありません。もっと単純で避けがたい理由によるものでした。

この記事では私が経験した手痛い失敗をお話しします。そして「CSV吐き出し」という現実的な解決策を解説します。どちらが優れているかという議論ではありません。現場で生き残るためにどちらを選ぶべきかという視点です。私の体験を共有させていただきます。

RPA画像認識の落とし穴、解像度変更

RPAを導入した当初、私は驚愕しました。画像認識機能が万能だったからです。古い社内システムでも実行ボタンを画像登録するだけです。ロボットが正確にクリックしてくれました。プログラミングの知識が乏しかった私には助かります。これほど頼もしい機能はありませんでした。

しかし、その信頼は一瞬で崩れ去ります。きっかけは社内のPCモニター交換でした。新しいモニターに一斉に交換されたのです。解像度が上がり、画面が鮮明になりました。喜びに沸く同僚たちを横目に私は青ざめました。私のロボットたちは次々と沈黙していったのです。以前登録された画像と現在の画面が一致しません。画像認識がそう判断してエラーを出し続けたのです。

モニター設定変更で画像認識エラー

月曜の朝、出社してすぐに処理結果のフォルダを確認しました。いつもならデータが届いているはずなのに、ファイルが一つもありません。ログを開くと「画像が見つかりません」というエラーで深夜2時ごろに止まっていました。自分のPCで動かすと普通に動きます。でも実行用の共有PCに持っていくと、ボタンの部分でつまずくのです。原因を調べたら、前の金曜日に総務がモニターの設定を変更していました。解像度がほんの少し上がっただけで、登録済みの画像と画面がズレてしまったのです。その日の午前中を丸ごと使って、20枚以上の画像を撮り直すことになりました。

結果的にその日だけで約4時間を再設定作業に費やしました。

モニター解像度の変更でRPAが壊れた原因

画像認識RPAの限界とリスク

画像認識RPAがこれほど繊細な理由は明確です。ロボットが画面を画像としてしか認識していません。人間ならボタンの色が変わっても同じだと分かります。文字の大きさが変わっても同様に判断できるでしょう。しかしロボットはピクセル単位で色を比較します。わずかな差異も許容してくれません。例えばWindowsのアップデートがあったとします。

ウィンドウの枠線の色が少し変わりました。人間にとっては些細なデザインの変更にすぎません。しかし画像認識には全く別の物体に見えるのです。またホバー状態の画像を登録する罠も存在しました。マウスを重ねた時にボタンの色が変わる状態です。クリックしようとした瞬間に色が変わってしまいます。その結果として認識に失敗しました。

画像認識の弱点、制御不能な外部要因が招くリスク

さらに外部モニターの着脱でも問題が起きます。OS内部の描画倍率が変わるケースがあるためです。これにより画面上の1センチの扱いが変化しました。ロボット内部で異なるピクセル数になるのです。結果として座標の計算が狂ってしまいました。画像認識は撮影時の環境の完璧な再現を求めます。

この環境への依存が業務の現場では致命傷です。社内システムのUI変更は防げません。セキュリティソフトのポップアップも出ます。自分ではコントロールできない外部要因ばかりです。ロボットの命運がこれらに握られている状態でした。画像認識に頼るとは常にリスクを抱えることです。

VBA・Pythonをもっと本格的に学ぶなら

VBAやPythonを実務レベルまで引き上げたい方には「侍エンジニア」がおすすめです。マンツーマン指導・オーダーメイドカリキュラムで、文系出身でも挫折しにくい環境が整っています。無料カウンセリングだけでも学習ロードマップが明確になります。

侍エンジニア 無料カウンセリングを予約する →

自動化の落とし穴:見えぬ修正コスト

ロボットが壊れた際、私は軽く考えていました。また画像を撮り直せばいいだけだと思ったからです。しかし実際に運用を始めると考えが変わります。修正作業こそが最大の隠れた業務でした。1つのボタンを撮り直すだけなら数分で終わります。しかし複雑なワークフローには多数の画像が存在します。数十個の画像認識ポイントがあることも珍しくありません。

それらを一つひとつ正しい設定で再登録します。この作業はもはや自動化ではありません。完全な手動作業になっていました。エラーのタイミングが実行環境で異なる場合もあります。原因を特定するだけでも膨大な時間を費やします。なぜ私の席では動くのに部長のPCでは動かないのか。この問題に向き合うたびに胃が痛くなりました。

当時の記録を振り返ると、月に平均90分ほどをロボットの修正作業に使っていました。

Power Automate Desktopのエラーダイアログ

ロボット故障、手動残業と尽きぬ不安

月末の締め処理当日、ロボットが朝からエラーで止まっていました。前夜に動かしていたはずなのに、気づいたら沈黙していたのです。直す時間がなかったので、その日は手作業でデータを一つひとつ入力しました。作業が終わったのは夜の9時を過ぎていました。修正したとしても来月また壊れるかもしれないという不安が、ずっと頭から離れませんでした。「自動化のために残業している」という状況が、ひどく馬鹿馬鹿しく感じた夜でした。

修正コストは時間だけでなく、周囲からの視線という精神的な重さも伴います。

安定の鍵はCSV出力

何度も画像認識に裏切られた私は次の手段を探します。それがCSV出力を活用する方法でした。画面上の項目をロボットにクリックさせるのをやめました。システムのエクスポート機能を使うのです。データを一括でCSVファイルとして吐き出させます。この方法は驚くほど安定していました。

CSVで逃げられる場面には最大の特徴がありました。対象のデータが一覧性のあるものであるかどうかです。例えば売上データや顧客リストなどが該当しました。これらは画面上に表形式で表示されているものです。このような画面は高確率でCSV出力機能を備えていました。画面をクリックして1件ずつコピーするロボットは不要です。まず画面に出力や保存というボタンがないか探します。

CSVの真価と隠れたデータ

CSVを利用する最大のメリットはデザインに依存しない点です。画面のデザイン変更に左右されません。ボタンの色が変わっても問題ありません。メニューの配置が移動しても大丈夫です。出力されるCSVのデータ構造さえ変わらなければ安心です。その後の処理は一切影響を受けません。これは保守担当者にとって大きな心の安らぎです。

画面上に直接CSV出力ボタンがなくても諦めません。ブラウザのデベロッパーツールを使ってみましょう。通信内容を覗くと裏側のデータが見えてきます。JSONやXML形式でやり取りしていることがあるからです。

自動化の肝:CSVデータ抽出確認

自動化の設計を始める際、私は考えるようになりました。このシステムからデータを取り出す最短ルートは何か。真っ先に確認すべきはCSVエクスポート機能です。システムの取扱説明書をしっかり読み込みました。または詳しい担当者に一括ダウンロードできないか聞きます。これが実は最も効果的な自動化の第一歩です。

次に確認すべきは出力されるデータの形式です。CSVといってもカンマ区切りとは限りません。タブ区切りの場合もあるでしょう。文字コードもShift-JISかUTF-8かで処理が変わります。特に古い国産システムはShift-JISであることが多いからです。Pythonなどで扱う際に文字化けを起こす危険性がありました。事前のチェックが絶対に欠かせません。

データ抽出の権限と項目を確保

また権限の確認も重要になってきました。画面上でデータを閲覧する権限はあっても油断できません。一括エクスポート権限が制限されている場合があるからです。この場合は情報システム部門に申請が必要です。権限を付与してもらう手間を惜しんではいけません。ここで画像認識RPAに逃げないことが大切です。多少の手続きを踏んででもCSVルートを確保しましょう。その方が長期的なコストは圧倒的に低くなります。

業務システムのCSVエクスポートボタン

最後にデータの項目が十分かを確認しました。画面には表示されているのにCSVにはないことがありました。これは特定の項目が欠落しているケースです。

RPAの活用判断と最終手段

どれだけ探してもCSV出力機能が見つからないこともありました。システム側への改修依頼も通らない場合でした。そんな時に初めてRPAによる画面操作を検討します。しかしいきなり画像認識に飛びつくのは早計でしょう。他の手段がないことを確認してからにすべきです。人間が介在せずにデータを移動させる手段を探します。

RPAへの切り替えを決断する際の判断材料がありました。処理するデータの鮮度と頻度です。例えば1分おきに最新の在庫状況を確認するとします。そして別のシステムに反映させなければなりません。手動でCSVを出力して取り込む作業は非現実的でした。こうしたリアルタイム性が求められる場面こそRPAの出番です。またデータの入力作業がメインの場合もRPAが必要になります。

自動取り込みを優先、RPAは最後の手段

確かにCSVはデータの取り出しには強い武器でした。しかしシステムへの登録には専用の機能が要ります。インポート機能が備わっていないことも多いからです。その場合はRPAを使ってフォームに埋めていきました。この作業は避けられません。

ただし常にCSVでなんとかならないか疑うべきです。入力作業であっても代替手段を探しましょう。指定フォルダにファイルを置くだけのバッチ処理などです。自動取り込みしてくれないか再度調査しました。RPAはあくまで最終手段です。王道ではないことを忘れてはいけません。

RPAが活きる場面と壊れる前提の運用

世の中にはRPAを使うしかない頑固なシステムが存在します。例えば10年以上前に作られた独自の専用ソフトです。データベースへの直接アクセスもできません。出力機能は印刷ボタンしかないようなケースです。こうしたレガシーシステムが業務の核である場合があります。私たちは覚悟を決めてRPAの設計に取り掛かりました。

複数のサイトを巡回して情報を収集する業務もありました。スクレイピングに近い作業もRPAが輝く場面です。相手方のサイトにAPIやCSV提供を求めることは不可能です。表示されている情報を読み取るしかありません。外部環境にアクセスする業務においてRPAは強力な武器です。

RPA価値最大化:判断と安定運用

さらに複雑な判断分岐が伴う操作もRPAの得意分野です。画面にAの警告が出たらBの処理を行いました。出なければCに進むといった対応です。視覚的な変化に応じた臨機応変な処理が求められます。静的なCSVデータだけでは完結できません。人間の目と手を模倣する高度な自動化です。こうした場面でRPAの価値は最大化されました。

RPAを採用する際はいつか壊れる前提で設計します。エラーが起きた時にすぐ担当者に通知が行くようにしました。どこまで処理が進んだかのログを詳細に残しましょう。壊れた後のリカバリーを重視した作りにするのです。これが運用を長続きさせるコツになります。

RPAを壊さないUI要素活用術

RPAを使うしかないと決まった時の対処法がありました。私は画像認識の代わりにUI要素を使うようにしています。セレクタと呼ばれる機能です。画面上のボタンを絵として捉えるのではありません。システムの内部的な識別IDや名前で指定します。主要なツールではこの方法が推奨されていました。

UI要素ベースの利点は見た目の変化に強いことです。ボタンの色が赤から青に変わったとしましょう。それでも内部的な名前が同じなら迷わずクリックできます。モニターの解像度やフォント設定が変わっても平気でした。システムの内部構造は変わらないからです。画像認識のような解像度エラーに悩まされることが減ります。

壊れないUI要素ロボット

画像認識でボロボロになったロボットを、思い切ってUI要素方式で作り直しました。ボタンを「名前」で指定するという感覚が最初は掴めず、何度も試行錯誤しました。でも一度設定が完了すると、それ以来まったく壊れなくなったのです。Windowsの月次アップデートが来た翌朝も、何事もなかったように動いています。画面を最小化したまま実行できるようになったので、作業しながらバックグラウンドで処理させることもできました。この安定感を知ってしまうと、もう画像認識には戻れないと感じています。

Power Automate DesktopのUI要素セレクター

もちろんUI要素が万能なわけではありません。古いJava製システムや特殊な描画方式のアプリでは取得できないこともあります。

堅実な自動化で長期安定稼働

自動化の現場で勝ちを定義するならどうなるでしょう。一度作ったツールが修正なしで長期間動き続けることです。1年以上安定稼働することが目標になりました。そのためには華やかな最新機能よりも地味な技術を優先します。古臭い技術を選ぶ勇気が必要でした。私がたどり着いた優先順位は次の通りです。まずはAPI利用、次に直接データベース接続を検討しましょう。続いてCSVやファイル連携を選びました。その次にUI要素RPAを検討します。そして最後に画像認識RPAという順序です。

現場で勝ちやすい人は自動化の範囲を欲張りません。全てをRPAで自動化しようとはしないのです。重たいデータの抽出はCSVで行いました。その後の集計はExcelマクロやPythonで処理します。最後のシステム登録だけを最小限のRPAで行うのです。それぞれの技術の得意な距離感を使い分けましょう。このハイブリッド構成こそが最も故障率の低い設計です。

エラーゼロ達成、CSVと人の「適度な手抜き

画像認識だけで動かしていた時期は月に平均7〜8回のエラーが出ていました。CSV連携に切り替えてからの3ヶ月間はゼロ件です。

自動化判断フローのホワイトボード

また人間との役割分担も重要になってきます。100%の自動化を目指して複雑な画像認識を組み込みません。90%を安定したCSV連携で行いました。残りの10%は人間が判断してボタンを押します。イレギュラー処理などは人に任せるのです。この適度な手抜きができる担当者ほど成果を上げました。

安定稼働の鍵、RPAとCSV連携

画像認識RPAは確かに見た目のインパクトが強いです。誰にでも直感的に使える素晴らしい機能でした。しかしそれだけに頼った自動化は危険です。砂の上に城を築くような危うさを孕んでいます。環境の変化という力には抗えません。ある日突然あなたの努力がゼロになるリスクがあります。そのことを常に意識しておかなければなりません。

一方でCSV吐き出しを軸にした連携は地味です。準備も面倒に感じるかもしれません。しかし一度構築してしまえば強固な基盤となります。岩盤の上に建てた家のように嵐でも揺るぎません。修正に追われる日々を卒業できるでしょう。そして次の新しい改善に時間を使えるようになります。これこそが本当の意味での業務効率化です。

もし今あなたがRPAの不調に悩んでいるとします。一度立ち止まって画面を眺めてみてください。CSV出力やレポート作成というボタンがあるかもしれません。それがあなたを救う魔法の鍵になります。正解の技術を選ぶことよりも大切なことがあります。明日も明後日も壊れずに動いてくれるのはどちらか。この問いを常に自分に投げかけてみてください。

失敗を恐れる必要はありません。私の経験があなたの自動化の旅を楽にできれば幸いです。

関連リンクとチェックリスト

学習サービスとアンケート

このスキルを活かしてさらに前へ進むなら

PythonやExcel自動化スキルを持ったまま、ITエンジニアとして転職したい方には「EBAエデュケーション」が選択肢です。企業が求めるエンジニア像に合わせたカリキュラムで、実務直結のスキルを習得できます。

ITエンジニア転職・EBAエデュケーション →

[アンケート] この記事は役に立ちましたか?


1問だけ回答する