コピペ地獄:自動化されない毎日1時間の無駄と疲弊

毎朝9時、出社してパソコンを立ち上げる。メールチェックを終えると。深い溜息をつきながら共有フォルダから昨日の売上集計Excelを開く。そこから始まるのは、1時間にも及ぶ虚無のコピペ作業だ。Excelのセルをクリックし、Ctrl+Cを押す。ブラウザタブを切り替え。社内基幹システムの入力フォームにCtrl+Vで貼り付ける。TABキーで次のフォームへ移動し、再びExcelに戻る。
毎日100行近いデータを手作業で入力していると。30行目あたりで視界がぼやけてくる。どこまで入力したか分からなくなり。行を飛ばしてしまったことに最後の確認画面で気づいたときは。手元のマウスを壁に投げつけそうになった。やり直しの絶望感で胃がキリキリと痛み。午前中のエネルギーをすべて使い果たしてしまう。
コピペ地獄とITの壁
こんな単純な繰り返し入力、自動化できないわけがない。令和の時代に人間がやるべき仕事ではないと、頭では完全に理解している。その作業に費やす時間は毎日約60分。年間250日稼働するとして、実に250時間以上が虚無のコピペに消えていく計算だ。しかし、現実は極めて厳しい。社内IT部門に相談しても。「予算がない」「既存システムの改修は不可能」の一点張りだ。
行き場のない徒労感だけが、肩こりと共に首の裏へ蓄積していく。
RPA導入の落とし穴、古いシステムと環境構築

まず、希望の光に見えたのが、巷でもてはやされているRPAツールだった。画面の操作を録画するだけで自動化できるという謳い文句に飛びつく。無料トライアルを申し込み、意気揚々とインストールを済ませる。しかし、ここからが本当の地獄の始まりだった。
RPAとSelenium、自動化の壁
最初の壁は、社内システムの特殊な構造だ。社内で使われているのは。ブラウザベースとはいえ何年も前に作られた化石のようなWebシステム。RPAツールのレコーダーを起動し、入力欄をクリックしても。まったく要素を認識してくれない。画面上の座標を無理やり指定してクリックさせる方法も試したが。ブラウザのウィンドウサイズが数ミリ変わるだけで空振りを連発する。
Power Automate Desktopの画面認識アクションを何度も試したが。社内システムの古いテーブル構造を一切読み取ってくれなかった。「UI要素の追加」ボタンを押して画面上のテキストボックスにカーソルを合わせても。赤い枠が要素のズレた場所を囲むばかり。3時間格闘した挙句。出来上がったのは「画面の何もない場所を永遠にクリックし続ける」というポンコツロボットだった。
自動化の壁、RPAとSeleniumの苦闘
どうにかRPAツールで動かす道を探ったが、さらなる壁が立ちはだかる。本格的に導入して安定稼働させるための有償ライセンス料だ。有償ライセンスは年間100万円を超えるケースも珍しくなく。一介のバックオフィス担当者が稟議を通せる金額ではない。代替手段として「Selenium」というブラウザ自動操作技術を見つけ。Pythonの入門書を片手に見よう見まねでコードを書いてみた。
だが、非エンジニアにとって「環境構築」はあまりにも高いハードルだった。黒い画面(コマンドプロンプト)に表示される「SessionNotCreatedException」という赤いエラー文字。Chromeブラウザのバージョンと。それを動かすためのChromeDriverのバージョンが一致していないという警告。ブラウザが自動アップデートされるたびにドライバーを探し直し。ダウンロードしてパスを通す。
この終わりのないバージョン管理地獄に心が折れ、ついに私は半年間。自動化の夢を完全に手放してしまった。
ここで一度立ち止まって考えてみてください
Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。
プログラミングスクール Enjoy Tech!(エ…
ChromeDriver管理自動化、バージョン地獄の終焉

次に、半年が過ぎたある日、再び自動化への熱が再燃する。毎日の無駄な作業に耐えきれなくなったのだ。改めて調べていく中で、劇的な変化が起きていることに気づく。PythonのSelenium環境における最大の障壁だった「ChromeDriverのバージョン地獄」が。すでに過去のものになっていたのです。
ドライバー管理の自動化
かつては、自身のパソコンに入っているChromeのバージョンを確認し。公式サイトから全く同じバージョンのドライバーを手動でダウンロードする必要があった。この作業が、非エンジニアの心をへし折る最大の原因だ。しかし今は違う。「webdriver-manager」という便利なライブラリが登場し。あるいはSeleniumの最新バージョン自体がドライバーの管理を全自動で行ってくれるようになっている。
わざわざインターネットの海からドライバーを探し出し。面倒な環境変数の設定を行う必要はない。数行のコードを書き加えるだけで。Pythonが勝手に現在のChromeのバージョンを判別し。適切なドライバーを裏側でダウンロードして動かしてくれる。
理由はシンプルだった。技術は日々進化しており。非エンジニアが躓きやすいポイントは優秀なエンジニアたちがどんどん自動化してくれているのだ。過去の古い技術ブログの情報を鵜呑みにして「自分には無理だ」と決めつけていたことこそが。最大のミスだったと気づく。ドライバー問題という最大の呪縛から解き放たれた今。再びPythonとSeleniumの力を借りて。あの厄介な社内システムに立ち向かう準備が整った。
Selenium:原始的だが強力な自動化

一方で、準備が整えば、あとはシステムにデータを流し込む仕組みを作るだけだ。Webブラウザの自動操作と聞くと、難解な魔法のように感じるかもしれない。しかし、Seleniumがやっていることは非常に原始的で分かりやすい。「画面上のどこに」「何を入力し」「どのボタンを押すか」を的確に指示するだけです。
社内システムの画面を開き。F12キーを押して開発者ツール(デベロッパーツール)を起動する。画面右側に無数の英語の羅列(HTML)が表示される。ここから入力したいテキストボックスの「id」や「name」という固有の名前を見つけ出す。たとえば、社員番号の入力欄に「emp_id」という名前がついていれば。それをPythonに教える。
RPAを凌駕する自動入力
コードの骨格は驚くほど短い。特定の入力欄を見つけ出す driver.find_element 。そこにExcelから読み取った文字を打ち込む send_keys 。登録ボタンをクリックする click 。この3つの命令文をブロックのように組み合わせるだけで、基本的な動きは完成する。Excelデータの読み込みも、外部のライブラリを使えば数行で終わる。
エクセルの1行目を読み込み、ブラウザに書き込み、登録ボタンを押す。これを最終行までループ(繰り返し)させる。初めて書いた数十行のPythonコードを実行した瞬間。画面上で勝手にChromeが立ち上がり。入力フォームに次々とデータが流し込まれていくのを見た。まるで透明人間が猛烈なスピードでキーボードを叩いているような光景に。思わず「おぉ…」と声が漏れた。半年間の苦労が報われた瞬間だった。
そのため、複雑なRPAツールで座標を微調整し続けたあの苦労は一体何だったのか。HTMLの要素を直接指定するSeleniumなら。ブラウザのウィンドウサイズを変えようが画面をスクロールしようが。絶対に空振りしない。裏側で動いている仕組みを理解すれば。どんな古いシステムにも対応できる強力な武器を手に入れたことになる。
業務自動化の壁と非エンジニアの突破

プロトタイプが動いたからといって、すぐに実業務で使えるわけではない。実運用に乗せるまでには、いくつかの落とし穴が待っている。1つ目は、システムの応答速度との戦いだ。Pythonの処理速度は人間よりも遥かに速い。画面が完全に読み込まれる前に次の入力を行おうとしてしまい。「そんな入力欄は見つかりません」というエラーを出して止まってしまう。
これを防ぐには、画面の読み込みが完了するまで待機する処理を適切に挟む必要がある。
2つ目は、イレギュラーなデータへの対応。Excelのセルが空白だったり、想定外の全角スペースが混ざっていたりすると。途端にエラーを吐いて停止する。入力前にデータの形式を整える処理を組み込む泥臭い作業が不可欠だ。3つ目は、周囲の理解を得ること。勝手にシステムを操作する怪しいプログラムと思われないよう。担当部署にテスト結果を共有し、安全性を説明する根回しが要求される。
手作業を断ち切る業務自動化
しかし、これらの壁を一つずつ乗り越え、ついに本番稼働にこぎつけた。毎朝1時間かかっていた虚無のコピペ作業が。今ではスクリプトをダブルクリックしてコーヒーを淹れに行っている間のわずか3分で完了する。人間が手作業で行っていた頃の「入力ミス」も完全にゼロになった。もし。あのままRPAのライセンス費用や「システム対応外」という言葉に絶望して諦めていたら。
今も目の霞みと戦いながらマウスを握りしめていただろう。
社内システムへの入力自動化に悩んでいるなら。プログラミングという選択肢を恐れる必要はない。最初はエラーの連続かもしれないが。正しい知識と少しの粘り強さがあれば非エンジニアでも必ず壁は突破できる。手探りで進めるのが不安なら。体系的にPythonを学べる環境を活用するのも一つの賢い手だ。例えば
のように、Pythonや自動化を実務に寄せて学べるサービスを使えば。独学の遠回りをかなり減らせる。今のあなたのその手作業は、決して永遠に続くものではない。自らの手でコードを書き、業務の鎖を断ち切るのです。
関連リンクとチェックリスト
Pythonが勝手に現在のChromeブラウザのバージョンを検出し、最適なChromeDriverを自動でダウンロードし、設定まで完了してくれるようになりました。この劇的な変化は、私のようなプログラミング初心者の非エンジニアにとって、まさに救世主の登場でした。以前は、この「環境構築」という最初の関門で挫折する人が後を絶たなかったのですが、今ではその心配はほとんどありません。
この進歩のおかげで、私は再びSeleniumを使った自動化に挑戦する気力が湧いてきました。以前のようにエラーメッセージに頭を抱えることもなく、スムーズにコードを書き始めることができたのです。数行のコードで、ブラウザが意図した通りに動き出したときの感動は、今でも鮮明に覚えています。まるで魔法にかかったかのように、画面上の要素が自動でクリックされ、テキストが入力されていく様子を目の当たりにしたとき、私は確信しました。「これなら、私にもできる!」と。
社内システムの特殊性という壁
そして、次に直面したのは、やはり社内システムの特殊性でした。RPAツールでは認識できなかった入力フォームの要素を、Seleniumでどうやって特定するかという問題です。ここでも、私は試行錯誤を繰り返しました。Webページの要素を特定するための「CSSセレクタ」や「XPath」といった概念を初めて知り、開発者ツールとにらめっこする日々が続きました。最初はまったく意味が分からず、ただひたすら画面上の要素をクリックしては、開発者ツールに表示される複雑なコードを眺めていました。
しかし、諦めずに調べ続けるうちに、少しずつ理解が深まっていきました。たとえば、「id」属性が付与されている要素は、それを指定すれば簡単に特定できること。あるいは、「class」属性やタグ名を使って、複数の要素の中から目的のものを絞り込む方法など、少しずつ知識が増えていったのです。まるでパズルのピースがはまっていくように、一つ一つの要素を特定し、Seleniumのコードに落とし込んでいく作業は、苦痛から喜びに変わっていきました。
特に、古いシステムによくある「iframe
特に、古いシステムによくある「iframe」という要素の中に入力フォームがある場合、そのままでは要素を認識できないという問題に直面したときは、正直途方に暮れました。しかし、これも「driver.switch_to.frame()」というコードを使うことで、iframeの中に切り替えてから要素を操作できることを知り、感動したのを覚えています。まるで、別世界に飛び込むような感覚でした。この知識がなければ、私の自動化の夢はここで終わっていたかもしれません。
そうして、一つ一つの壁を乗り越えながら、私はついに、毎日1時間かけていたコピペ作業を完全に自動化することに成功しました。朝、出社してパソコンを立ち上げると、私が書いたPythonスクリプトを実行するだけです。あとは、ロボットが淡々とExcelからデータを読み込み、社内基幹システムに入力していくのを眺めているだけ。
約10分後には、すべての入力が完了し、私は残りの50分を本来の業務や、新しい仕事の企画に充てられるようになったのです。このときの達成感と解放感は、何物にも代えがたいものでした。プログラミングの「プの字」も知らなかった私が、自らの手で仕事の課題を解決できた喜びは、私のキャリア観を大きく変えるきっかけとなりました。
関連リンクとチェックリスト
解決の糸口を見つけるまでの道のり
著者はこうして解決の糸口を見つけた
著者も同じ境遇から始まりました。独学でここまで自動化した道のりを参考にしてみてください。
学習サービスとアンケート
学習サービスとアンケート
このスキルを活かしてさらに前へ進むなら
Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

