エピソード9で書きました。会社のRPAが対応外だった話です。RaspberryPiとPythonを使い、自作しました。あれを完成させるまでには、ひと月近くかかりました。当時はまだ、生成AIという存在がありませんでした。ひたすらGoogle検索を繰り返す毎日でした。何度も壁にぶつかり、行き詰まったことを思い出します。今回の出発点も、以前と全く同じでした。やはり会社のRPAが使えないのです。けれど、手元には武器があります。あの時にはなかった、強力な武器です。それが今回の大きな助けとなりました。
BizRobo!自動化への挑戦、内外の壁
まず、我が社にはBizRobo!があります。正確には「ある」というだけの状態です。実際に使えるかどうかは、また別の話になります。毎月、決まった作業があります。勤怠管理クラウドからCSVをダウンロードします。それを集計します。会議用のフォーマットに整えて提出します。この繰り返しを、毎月手作業で行っていました。「これをBizRobo!で自動化できないか」と考えました。私にとっては、ごく自然な流れでした。
最初にDesign Studioを触ってみました。まずは操作を覚えました。設定を行って実行してみましたが、動きません。対象のシステムに対応していないそうです。またかと思い、肩を落としました。前回も同じような状況だったからです。
画面操作を阻むシステム側の壁
次に、画面の操作を細かく試みました。しかし、全くもうまくいきません。「セレクタの指定が甘いのか」と考えました。XPathを微調整してみました。それでもダメです。待機時間を延ばしてみたりもしました。どれだけ工夫を凝らしても、無駄でした。まるで透明な壁に阻まれているようです。RPAはピクリとも反応してくれませんでした。おそらく、システム側に原因があります。botからの操作を強力に弾いているのだと思います。
情シス非推奨、DAの希望潰える
「次こそはいけるかもしれない」と思いました。淡い期待を何度も抱きました。しかし、すべて打ち砕かれました。気づけば丸半日が経過していました。画面を睨み続けた末の結果です。「これはお手上げだ」と悟りました。その時の徒労感は、底知れないものでした。完全に心が折れてしまいました。

ただ、調べているうちに知ったことがあります。Desktop Automation(DA)という機能です。BizRobo!の中にある別の機能です。これなら、より幅広いシステムに対応できます。「これならいけるかもしれない」と考えました。そこで、情報システム部へ確認を取りました。
一方で、情シスからは宣告がありました。「DAは環境依存が激しい」とのことです。解像度などの違いですぐに止まります。運用が不安定になるから、と言われました。「悪いことは言いません。やめておいたほうがいい」と断られました。
解像度と運用の不安定さという宣告
Webブラウザからの操作が全滅しました。残された最後の一手がDAでした。画像認識やマウス操作の模倣なら突破できると信じていました。どんな強固なシステムも超えられるはずです。しかし、その矢先の出来事でした。情シスからの非情な宣告に、私は言葉を失いました。
情シスの壁、RPA絶望
RPAを拒む外部の壁に絶望していました。それは「システム」という壁です。しかし、さらなる壁がありました。社内の「情報システム部」という内部の壁です。そこでトドメを刺されるとは思いませんでした。唯一の突破口を完全に塞がれた気分でした。目の前が真っ暗になったような心地でした。
情報システム部の方々も、親切に調べてくださいました。しかし、結論は変わりませんでした。「DAは動作が不安定だから非推奨」とのことです。BizRobo!の導入費用がどれほどだったのかは存じ上げません。ですが、私自身の業務には関係のない話になってしまいました。期待していただけに、その反動は大きかったです。
毎月の不毛な勤怠集計作業
自動化したかった作業を整理します。手順は以下のようになります。
- 勤怠管理クラウドサービスにログインします。CSVの発行を依頼し、ダウンロードを行います。
- ダウンロードしたCSVを開きます。個人ごとの月次集計を算出します。総労働時間や時間外労働時間などです。
- 最新の人員表を参照します。人事部がファイルサーバーに置くデータです。所定のフォーマットに整形し、出力します。
毎月たった1時間の作業です。小さいといえば小さいかもしれません。ですが、毎月必ず発生する作業です。絶対に間違えてはいけない仕事は、精神を消耗させます。
月末に訪れる精神的な消耗
カレンダーの数字を見ます。月末に近づくたび、胃のあたりが重くなります。バラバラの形式で提出されたデータを整形します。VLOOKUPの参照範囲を、ちまちまと修正します。数式のズレを見つけては、溜息をつきます。合わない合計時間を探して、画面を睨みつけます。その時間は、まさに「無の境地」です。
「また今月も、この作業に1時間を溶かすのか」と思います。その思いが頭をよぎるたび、悲しくなります。自分のスキルの使いどころを、間違えている気がします。やるせない徒労感に襲われるのです。保存ボタンを押して、ようやく資料が完成します。しかし、達成感よりも先に別の思いが来ます。「来月もまたこれが来る」という予報です。それが静かに心を削っていくのです。
PythonとVBA、連携の壁と3日間の苦闘
RPAが使えないと決まりました。その時点で、方針は決まっていました。PythonとExcelVBAを使い、自作することです。前回と同じような構図になりました。役割の分担は以下のようにしました。Pythonがクラウドへログインします。CSVの発行依頼とダウンロードを担います。ExcelVBAがCSVを集計します。人員表を参照し、フォーマットを整えます。最後に出力するまでを担当させました。
個別に動かすのは、それほど難しくありませんでした。Pythonのブラウザ操作は、経験があります。VBAについても、これまで長く書いてきました。そのため、単体テストはすべて通過しました。
繋げる工程に潜む大きな課題
問題は、「繋げる」ところにありました。Pythonが書き出したCSVをVBAで読みます。人員表は、更新のたびに名前が変わります。日付が入ったセルを、読み取る必要があります。最新ファイルを自動で特定しなければなりません。処理の順序やファイルパスの受け渡しに苦労しました。日付判定のロジックも複雑です。一つ一つは解決できても、繋がりませんでした。すべてを繋げることができず、頭を抱えました。
VBA・Pythonをもっと本格的に学ぶなら
VBAやPythonを実務レベルまで引き上げたい方には「侍エンジニア」がおすすめです。マンツーマン指導・オーダーメイドカリキュラムで、文系出身でも挫折しにくい環境が整っています。無料カウンセリングだけでも学習ロードマップが明確になります。
マクロ開発3日間の深まる迷宮
期間にしておよそ3日間、格闘しました。1日目は「これはいける」と意気込みました。断片的なコードを繋ぎ合わせました。2日目は、マクロの停止に悩みました。特定の条件下で動かなくなります。ネットの掲示板を漁り、深夜まで微修正を繰り返しました。しかし、解決の糸口が見えません。3日目には、完全に迷宮入りしました。昨日まで動いていたはずの部分も動きません。頭の中は、スパゲッティコードのようでした。完全にぐちゃぐちゃな状態でした。

「結局、手でやった方が早いのではないか」と考えました。自分の中の悪魔が囁きます。一方で、ここまで費やした時間を無駄にしたくありません。その意地だけで踏みとどまりました。パズルの最後の数ピースが、どうしてもはまりません。もどかしく、孤独な戦いでした。
前回のひと月近くかかった苦労を思い出しました。あの時もそうでした。単体は動くのに、繋げるところで詰まっていました。今回も同じ轍を踏んでいるようでした。
GeminiによるVBA「背骨」生成、一日の劇的解決
今回、前回と違った点があります。それはGeminiの存在です。行き詰まっていたコードを貼ってみました。「CSVをVBAで処理したい」と伝えました。「人員表を日付で特定する必要がある」とも書きました。「全工程を繋いでほしい」と投げました。大まかな内容でしたが、相談してみました。返ってきたコードは、見事なものでした。自分では書けなかった部分を、見事に埋めてくれました。
ExtractDate関数が解いた日付の謎
特に助かったのがExtractDate関数です。人員表のセルには「4月8日」とあります。これを日付として扱う必要がありました。yyyy/mm/dd形式への変換です。自分では、なかなか思いつきません。正規表現は使いませんでした。InStrとMidを用いました。文字の位置を基準に分解する発想です。自分一人では辿り着けなかったでしょう。
この工夫により、霧が一瞬で晴れました。自分が書いたツギハギの命令文とは違います。洗練されたロジックでした。複雑なループや条件分岐が、整理されていました。3日間の迷走が、嘘のように感じられました。
コードの背骨、システムの躍動
「これだ。これなら全部が繋がる」。そう確信しました。バラバラだった個々の機能が、ようやく繋がりました。このコードという「背骨」を通しました。すると、一つのシステムとして動き出しました。ネット上の断片的な情報では無理でした。対話の中から「正解」が現れた瞬間でした。結局、たった1日で繋がりました。
勤怠管理自動化の仕組み
最終的な構成は以下の通りとなりました。
- Pythonがクラウドサービスにアクセスします。CSVの発行依頼から、ダウンロードまでを行います。
- ExcelVBAが起動します。指定フォルダから最新のCSVを自動で探します。
- 人員表Excelをチェックします。N1セルの日付から、最新ファイルを特定します。
- CSVデータを集計します。人員表とデータを突き合わせます。
- 会議用フォーマットのExcelに整形し、出力します。
実行は1クリックで済みます。完了まで、わずか3分です。さらに、自動特定ロジックが気に入っています。毎月ファイル名が変わるものです。ですが、こちらは何もしなくていいのです。「前月25日以降に更新されたもの」という条件です。フォルダを走査して日付を読み取ります。自動で最新を選んでくれるようになりました。
生成AIが解いたRPAの「繋ぎ目」
エピソード9のことを思い出します。当時はXPathで3日かかりました。メール本文のURL抽出にも何日も費やしました。全体でひと月近くかかりました。それは生成AIがない時代の記録です。

今回も、繋ぎ込みだけで3日間悩みました。個々の処理は動く状態でした。しかし、全工程が繋がりませんでした。前回と同じ壁にぶつかっていました。しかしGeminiに相談してからは、劇的でした。たった1日で解決したのです。
一瞬で終わる作業と感動
違いはGeminiに聞けたことだけです。それだけで、結果が大きく変わりました。震える指先で、実行ボタンをクリックしました。数秒後、セルが生き物のように動き出しました。一瞬で資料が組み上がりました。時計の針は、まだ3分も進んでいません。かつては1時間を費やしていました。神経を磨り減らしていた作業です。それが、嘘のように終わってしまいました。
AIが紡ぐフロー、時間短縮の歓び
喉の奥から、歓喜が込み上げました。単なる効率化の喜びではありません。3日間の迷走を乗り越えた結果です。エラーとの格闘に勝った瞬間です。自分自身への疑念を、すべて跳ね返した証明です。1時間という重苦しい「義務」が消えました。わずか3分の「結果」に変わったのです。視界がパッと開けました。開放感に包まれました。奪われていた自分の時間が、戻ってきました。ようやく手元に返ってきたのだと、強く実感できました。
繋ぎ目を解決するAIの力
最近、感じていることがあります。生成AIは「繋ぎ目」に強いということです。単体を作ることは、自分でもできます。調べれば、コードは書けるからです。しかし、本当に効くのは「繋ぎの部分」です。AとBは動くけれど、渡し方が分からない。そこに「全工程を繋いで」と投げます。すると、自分にはない発想が返ってきます。前回ひと月かかった理由も分かりました。そこをすべて自分一人でやっていたからなのですね。
関連リンクとチェックリスト
無料プレゼント
Excel業務を自動化する前に確認するチェックリスト(PDF)
自動化していい作業かどうか確認しましょう。VBAかPythonか、判断基準をまとめました。避けるべき落とし穴も記載しています。実務のポイントを1枚にまとめました。メールアドレスだけで受け取れます。
無料でチェックリストを受け取る¥980 ミニキット
コピペで動かせる3スクリプト+自動化チェックリスト
最新ファイルの自動選択を行うコードです。部署名ゆれの正規化も含まれます。CSV文字コード確認もセットにしました。今週の作業を楽にするためのキットです。
ミニキットを見る(¥980)著者はこうして解決の糸口を見つけた
著者も同じ境遇から始まりました。独学でここまで自動化した道のりを参考にしてみてください。
学習サービスとアンケート
このスキルを活かしてさらに前へ進むなら
Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

