こんにちは、こんです🦊
今日は、「誰かが気づくまで処理が止まってる…」という属人的な業務をどうにかしたくて、Slack通知×ファイル監視×自動加工+自動整理まで含めた自動化スクリプトを組んでみました。
実験のきっかけ:人が気づかないと進まない作業、ありませんか?
こんなシーン、ありませんか?
ファイルは届いてるけど、中身が完成するまで気づけない
誰かが「できました」って言ってくれないと処理できない
同じ処理を何度もしていて、どれが最新かわからない
そんな「反応待ち型の業務」を自動で回せないか?と思い、今回の実験に踏み切りました。
作ってみたもの(構成概要)
✅ スクリプト①|入力完了を検知して処理開始
特定のフォルダを毎回チェック
ファイルがあれば開く → 指定列がすべて埋まっていたら処理を実行
Excel加工(列追加・差分計算)+CSV出力
Slackに処理通知を送信
すでに出力済みなら処理はスキップ(安全設計)
✅ スクリプト②|CSVを変換して整理フォルダに自動移動
あるCSVの特定列を選んで列名を変換
出力後、自動的に「済」フォルダに移動
Slackに完了通知+保存先を明記
実感したメリット
1. 「反応待ち」からの脱却
入力完了を検知して勝手に処理。人の声掛けや確認作業が不要になりました。
2. Slack通知で“気づける”
処理完了をSlackに投稿することで、周囲にも進行状況が共有されるように。
3. 「スキップ」設計で何度でも実行可能
出力ファイルがあればスキップ → 重複実行の心配もなく、安心してスケジュール実行できます。
再利用できる!汎用スクリプト(テンプレ)
🔁 入力完了を検知して処理するテンプレ
if df["対象列"].isnull().any():
print("未入力があるためスキップ")
exit()
🧼 出力ファイルがあれば処理スキップ
if os.path.exists(output_path):
notify_slack("既に出力済のためスキップします")
exit()
📨 Slackに通知するテンプレ
from slack_sdk import WebClient
client = WebClient(token="xoxb-...")
client.chat_postMessage(channel="#通知用チャンネル", text="処理が完了しました。")
📦 フォルダ整理(済フォルダへ移動)
import shutil
shutil.move(input_path, os.path.join(processed_folder, os.path.basename(input_path)))
実際の流れ(想定例)
📥 input/ フォルダに data_yyyymmdd.xlsx が置かれる
✅ F列がすべて埋まっていたら result.xlsx と upload.csv を出力
📤 Slackに完了通知
📦 元ファイルは input_done/ に、出力ファイルは result_done/ に自動移動
次回予告:この仕組みをStreamlitでUI化してみる!
今は裏で自動で動く構成でしたが、次は:
フォルダや列名を指定できるUI
ステータスを画面で確認できる仕組み
ワンクリック実行できるボタン付き画面
などをStreamlitで整えて、さらに業務に溶け込ませていきたいと思います!
まとめ:「気づいたら終わってる」仕組みをPythonで実現できる
手作業でも、エクセルでも、Slackでもいいけれど、「人が都度反応する」フローは意外と見落としがち。
処理そのものより、「トリガーと通知」が整えば、業務は驚くほどスムーズに回ります。
次回はもっと汎用性のある形に育ててみます!🦊
#業務改善 #Slack通知 #Python自動化 #ファイル監視 #ノーコードじゃない効率化 #ChatGPTで業務DX