1. プロローグ:なぜ今「自作」なのか?
最近、強く感じていることがあります。
それは「環境の制約は、思っている以上に思考を止める」ということです。
セキュリティが厳しい環境では、外部ツールのダウンロードが制限されていたり、インストールに管理者権限が必要だったりします。便利そうなフリーソフトを見つけても、「使えない」という現実にぶつかります。
以前なら、「まあ仕方ない」と諦めていたかもしれません。
しかし今は違います。
生成AIと対話しながらコードを書く、いわゆる「バイブコーディング」というスタイルに出会ってから、発想が変わりました。
完璧な設計図を先に作るのではありません。
まずは動くものを作る。
動かしながら直す。
AIと会話しながら、少しずつ改善する。
このプロセスそのものが、とても楽しいのです。
この記事でお伝えしたいのは、プログラミングの技術そのものではありません。
「プログラミングは目的ではなく、不自由を突破するための手段である」ということです。
この1週間で、私は4つの自動化ツールを作りました。
どれも小さなものです。
しかし、確実に日常を変えてくれました。
実は最近、社内でも「バイブコーディング」の推奨が始まりました。それに伴い、以前はハードルが高かったPythonなどの実行環境も、特に個別の許可を必要とせずインストールできるようになったのです。
「環境が整ったのなら、あとはやるかやらないかだけだ」
この変化が、私の背中を強く押してくれました。
2. 【事例1】Power Automateで「操作手順書」の素材を自動生成する
課題:100枚のキャプチャを撮る「マニュアル作成」の絶望感
業務の引き継ぎや、備忘録としての操作手順書作り。 新しいシステムの使い方を説明するために、画面を1枚撮ってはExcelに貼り付け、また1枚撮っては貼り付け……。 この単純作業で貴重な午前中が丸ごと潰れてしまうのは、あまりにも非生産的です。 「作業の手を止めてキャプチャを撮る」という行為そのものが、思考のノイズになり、マニュアル作成のハードルを上げていました。
解決策:Power Automate Desktopで「記録」を自動化
そこで、Windows標準で利用できるPower Automate Desktop(PAD)を活用しました。 仕組みはシンプルです。
-
特定の操作(クリックやキー入力)を検知
-
自動でスクリーンショットを撮影
-
日付・時刻付きのファイル名で特定フォルダへ保存
-
次の操作まで待機
しかし、いざ動かしてみると「画面が切り替わる前にシャッターを切ってしまう」という問題に直面しました。 ここでAIとの対話(バイブコーディング)の本領発揮です。
「単なる秒数待機(Wait)ではなく、画面上の特定のボタンが表示されるまで待機するには?」 「ウィンドウがアクティブな時だけ撮影するように条件分岐させるには?」
AIに相談しながら、こうした「現場の知恵」をコード(フロー)に落とし込んでいきました。 何度も試行錯誤を繰り返し、最終的には自分の操作の邪魔をすることなく、背後で着々と「マニュアルの素材」が溜まっていく環境が整いました。
結果:マニュアル作成の「心理的ハードル」が消えた
これまで数時間かかっていた素材集めが、普段通りに業務を1周するだけで完了するようになりました。 「マニュアルを作らなきゃ」という重たい腰が、自動化によって驚くほど軽くなったのです。 何より、「不便なルーチンワークは、自分の工夫次第で消し去ることができる」という自信に繋がったことが、一番の収穫でした。
3. 【事例2】Pythonで画像群を「一瞬でPDF化」する
課題:大量の「手順用バラ画像」をどう共有するか?
事例1で自動収集した、大量のスクリーンショット画像。 素材が集まるのは良いのですが、これらがバラバラの画像のままだと、他人に共有するには不便です。 「フォルダごと送るので、1番から順に見てください」と言うわけにもいきません。 理想は、パラパラ漫画のようにめくって確認できる「1冊のPDFマニュアル」にまとめることです。
しかし、手動でPDF化するのは意外と骨が折れます。 WordやExcelに1枚ずつ貼り付けてサイズを調整し、PDFとして書き出す……。 画像が100枚あれば、それだけでまた1時間が溶けてしまいます。
解決策:Pythonスクリプトで一括変換
そこでPythonの出番です。 img2pdf や Pillow といったライブラリを使えば、驚くほど短いコードで「フォルダ内の画像をすべて結合して1つのPDFにする」という処理が書けます。
-
指定フォルダ内の画像を読み込む
-
ファイル名(タイムスタンプ順)に並べ替える
-
A4サイズなどの適切な判型に整えてPDF出力
実行時間は、文字通り「一瞬」です。 もし画像が300枚あったとして、手動で1枚10秒かけて貼り付けていたら50分かかります。 対して、このスクリプトならわずか1秒。 自分の時給を仮に2,000円とすれば、1回の実行で約1,600円分のコストを浮かせたことになります。
自動化は「未来の自分への投資」になる
一度コードを書いてしまえば、今後マニュアルを作るたびに「1秒」で作業が終わります。 「一度作った仕組みが、寝ている間も自分の代わりに働いてくれる」 この感覚こそが、自動化の醍醐味です。 Pythonという強力な武器を、単なるデータ分析だけでなく「日常のちょっとした整理」に使う。 この手軽さが、バイブコーディング時代の醍醐味だと言えるでしょう。
4. 【事例3】制限の厳しい社内環境での「ツール自作」戦略
― PowerShellだけで終わらせない。C#でGUIにも挑戦してみた話 ―
課題:フリーソフトが使えない環境
以前は、ファイルのタイムスタンプ(作成日時や更新日時)を変更するために、フリーソフトを使っていました。
ちょっとした調整や検証のために必要な機能でしたが、新しい環境では事情が違いました。
・外部ソフトのダウンロード不可
・インストール不可
・実行ファイルの持ち込みも原則不可
つまり、「便利ツール前提の仕事」ができなくなったのです。
一瞬、「これはもう無理では?」と思いました。
ですが、ここで発想を切り替えました。
発想の転換:「ツールが使えないなら、自分で作ればいい」
最初はPowerShellでスクリプトを書きました。
Windows標準搭載なので、追加インストール不要。
セキュリティポリシーの範囲内で実行できます。
AIと対話しながら、CreationTime や LastWriteTime を変更する処理を書き、基本的な機能は完成しました。
しかし、ここでふと考えました。
「これ、毎回コマンドラインで実行するのは少し使いづらいのでは?」
社内の他メンバーが使う可能性もあります。
引数を間違えればエラーになります。
入力ミスも起きます。
そこで、もう一歩踏み込みました。
解決策:C#でGUIを作る
「せっかくなら、GUIを作ってみよう」
使ったのはC#です。
Visual Studio環境がすでに整っていたため、新規インストールは不要でした。
やったことは以下のようなシンプルな構成です。
-
ファイル選択ダイアログ
-
日時入力フォーム
-
実行ボタン
-
処理結果の表示欄
内部では System.IO.File クラスを使ってタイムスタンプを変更します。
ロジック自体はPowerShellとほぼ同じですが、UIがあることで格段に使いやすくなりました。
最初は、イベント処理の書き方が分からず、AIに何度も質問しました。
「ボタンを押したときに処理を走らせるには?」
「日時入力をDateTimePickerにした方が安全では?」
「例外処理はどこに入れるべきか?」
エラーが出ては修正し、
ビルドしては直し、
少しずつ形になっていきました。
正直、完璧な設計ではありません。
ですが「ちゃんと動くGUIアプリ」ができたときの達成感は、想像以上でした。
なぜGUIにこだわったのか
PowerShellだけでも目的は達成できます。
しかしGUIを作ることで、次のようなメリットがありました。
-
操作ミスの削減
-
非エンジニアでも使いやすい
-
将来的な機能追加が容易
-
「仕組み」として残せる
単なるスクリプトではなく、
「社内用ツール」としての完成度が一段上がった感覚がありました。
そして何より、
「ツールが落とせないなら、コードを書けばいい」
という発想が、
「どうせなら使いやすくしよう」に進化したのです。
制限は、むしろ思考を研ぎ澄ます
制限があると、最初は不便に感じます。
しかし、その制限の中で最適解を探すと、思考が深くなります。
・標準機能で何ができるか
・既存環境の中でどこまで拡張できるか
・セキュリティポリシーを守りながら効率化するにはどうするか
これは単なる「小さなツール作り」ではありませんでした。
環境を言い訳にしない思考。
それが身についた気がします。
PowerShellで土台を作り、
C#でGUI化する。
この一連の流れは、私にとって大きな自信になりました。
ダウンロード禁止という制限は、
結果的に「自作」という選択肢を本気で考えるきっかけになったのです。
5. 【事例4】膨大なリストの「名寄せ・整形」自動化
課題:数千件におよぶ専門用語リスト
ある専門分野の名称リストがありました。
数千件規模です。
関連する親項目ごとに1レコードへまとめる必要がありましたが、
手作業では3時間以上かかる見込みでした。
解決策:Pythonでテキスト処理
Pythonの辞書型やPandasを使い、
-
親項目ごとにグループ化
-
重複削除
-
整形して出力
という処理を書きました。
実行時間は約10秒。
あの3時間は何だったのでしょうか。
もちろん最初にコードを書く時間はかかります。
しかし一度仕組み化すれば、次回以降は瞬時です。
単なる作業が、構造化された処理へと変わる。
この変化は本当に劇的でした。
6. エピローグ:自動化の先にある「専門性」と「海外案件」への投資
この1週間で作った4つのツールは、どれも小さなものです。
しかし確実に、私の時間を生み出してくれました。
そして今、その時間を何に使っているかというと、
ドメイン知識の専門性を高めるためのセミナー参加や、
海外副業案件に挑戦するための準備です。
自動化の本当の価値は、「作業が楽になること」ではありません。
時間を取り戻すことです。
手作業に3時間かかっていたものが10秒になる。
毎回50分かかっていた作業が1秒で終わる。
その積み重ねが、
学習時間や挑戦の余白を生み出します。
技術そのものを目的にしているわけではありません。
専門性を高め、市場価値を上げるための土台づくりです。
制限の厳しい環境でも、
「できない」と止まるのではなく、
「どうやればできるか」と考える。
その思考回路こそが、
これからの時代に一番必要なスキルなのではないかと思います。
プログラミングは特別な人のものではありません。
不自由を突破するための、ただの手段です。
そしてその先にあるのは、
より高い専門性と、より広い市場への挑戦です。
これからも、
小さな自動化を積み重ねながら、
本当に伸ばしたい力に時間を投資していきたいと思います。

コメント