Pythonで日常業務を自動化する入門|未経験から最初のスクリプトまで

公開

/ 最終更新

Pythonで日常業務を自動化する入門|未経験から最初のスクリプトまで

「毎週同じExcel集計をしている」「ダウンロードフォルダがぐちゃぐちゃ」「複数サイトを毎朝巡回している」――そんな定型作業は、Pythonで自動化できる可能性が高い作業です。

この記事では、プログラミング未経験〜初学者に向けて、Python自動化の始め方を「何が自動化できるか→環境づくり→最初の一歩→学習の進め方」の順で解説します。

何が自動化できるのか

自動化に向く作業の3条件の図解。繰り返し発生する、手順が同じ、時間がかかる作業ほど自動化の効果が大きい
まず「自分の作業の棚卸し」から始めましょう

Pythonの得意分野は幅広く、次のような日常業務が定番の自動化対象です。

  • ファイル操作:フォルダ整理、リネーム一括処理、古いファイルの退避
  • Excel・CSV処理:複数ファイルの集計・結合、定型レポートの生成
  • Web情報の取得:価格・ニュースなどの定期チェック(対象サイトの規約順守が前提)
  • メール・通知:集計結果の自動送信、チャットへの通知
  • 画像処理:一括リサイズ・形式変換・透かし入れ

逆に、判断が多く例外だらけの作業は自動化に向きません。「繰り返す・手順が同じ・時間を食う」の3条件で対象を選ぶのが成功の秘訣です。

環境づくり(15分)

  1. Pythonのインストール:公式サイト(python.org)からダウンロード。Windowsはインストール時に「Add python.exe to PATH」に必ずチェック
  2. エディタの用意:Visual Studio Code(無料)+Python拡張機能が定番
  3. 動作確認:ターミナルで python --version と入力し、バージョンが表示されればOK

WindowsでLinux環境ごと学びたい方は、WSLを使う方法もあります(コマンド操作の練習にもなります)。

最初の一歩:ファイル整理スクリプト

ダウンロードフォルダを拡張子ごとに自動整理する10行のPythonコード例
「動くと嬉しい」を最短で体験できる例です

図のコードは、ダウンロードフォルダ内のファイルを拡張子ごとのフォルダ(PDF、JPGなど)に自動で振り分けるスクリプトです。organize.pyという名前で保存し、ターミナルで python organize.py と実行するだけで動きます。

初めて実行するときは、テスト用フォルダで試してください。ファイル移動系のスクリプトは、対象フォルダを間違えると混乱のもとになります。まず小さく安全に、が自動化の鉄則です。

定番ライブラリを知っておく

ライブラリ用途
pathlib / shutilファイル・フォルダ操作(標準搭載)
openpyxl / pandasExcel・CSVの読み書きと集計
requestsWebページ・APIからのデータ取得
Pillow画像の一括処理
scheduleスクリプトの定期実行

ライブラリは pip install pandas のように追加します。「やりたいこと+Python」で検索すれば、ほぼ確実に先人のコード例が見つかるのがPython最大の強みです。

挫折しない学習の進め方

  1. 「作りたい自動化」を1つ決める:教材を最初から読むより、目的から逆算するほうが続きます(独学ロードマップの考え方と同じです)
  2. AIチャットを先生にする:「このコードの意味を教えて」「エラーの原因は?」と聞けば、24時間つきっきりの家庭教師になります。ただし動かす前にコードの意味を理解する癖を
  3. 動いたら少しずつ育てる:「整理→完了をログに残す→毎朝自動実行」のように、1機能ずつ足していくのが上達の王道です

自動化の注意点

  • 会社のPCでは社内ルールを確認:ソフトのインストールや業務データの扱いには規程がある場合があります
  • Webスクレイピングは相手サイトの規約と負荷に配慮:禁止サイトも多く、アクセス間隔などのマナーが必要です
  • 元データのバックアップ:ファイルを書き換える処理は、必ずコピーで試してから本番に

よくある質問

Q. プログラミング完全未経験でも自動化までたどり着けますか?

A. たどり着けます。この記事のファイル整理レベルなら、変数・for文・if文という基礎文法を学んだ直後(学習開始から数週間)で十分理解できます。

Q. ExcelのマクロVBAとPythonはどちらを学ぶべきですか?

A. Excelの中だけで完結する作業ならVBAも有力です。ファイル操作・Web・画像などExcel外に広がる可能性があるなら、応用範囲の広いPythonをおすすめします。

Q. 書いたスクリプトを毎日自動で動かすには?

A. Windowsなら「タスクスケジューラ」、Mac/Linuxならcronに登録するのが定番です。まずは手動実行で安定させてから自動実行に進みましょう。

この記事に出てくる用語

バックアップ/プロンプト/API/ほか計117語をIT用語辞典で解説しています

自動化する仕事を、正しく選ぶ

自動化で失敗する最大の理由は、技術ではなく対象の選び方です。向いていない作業を選ぶと、作る時間のほうが長くなります。次の4条件で判定してください。

条件向いている向いていない
頻度毎日・毎週など定期的年に1回だけ
手順の固さ毎回まったく同じ手順そのつど判断が要る
入力の形ファイル名や列の位置が決まっている毎回レイアウトが違う
失敗の影響間違えてもすぐ気づける・戻せる取り返しがつかない(送金、削除、送信)

目安として、「1回15分の作業を、週1回」なら年間13時間。これを2時間で自動化できるなら十分に元が取れます。逆に「1回5分を月1回」は年間1時間なので、自動化する価値は薄いことになります。まず紙に、その作業の頻度と所要時間を書いてみてください。

よくある業務と、使うライブラリの対応表

「Pythonで何ができるか」ではなく、「この作業には何を使うか」から引けるようにしておくと、迷いません。

やりたいこと使うもの難易度
大量のファイル名を一括で変更・整理する標準ライブラリ(os、pathlib、shutil)易。最初の1本におすすめ
複数のCSVを1つに結合・集計するpandas易〜中
Excelファイルの読み書き(書式を保つ)openpyxl
PDFからテキストを抜き出すpypdf、pdfplumber
Webサイトから情報を取得するrequests、BeautifulSoup中。規約と負荷への配慮が必須
画像の一括リサイズ・変換Pillow
メールの自動送信smtplib、または各サービスのAPI中。誤送信対策を先に作る
APIからデータを取得するrequests

最初の1本は「ファイル整理」を強くおすすめします。結果が目で見えて、失敗しても元に戻せて、外部サービスに影響しないからです。いきなりメール送信やWeb操作から始めると、うまくいかない原因が自分のコードなのか外部要因なのか切り分けられず、挫折しやすくなります。

壊さないための、4つの作法

自動化は「大量に、速く、間違える」道具でもあります。人間なら10件目で気づくミスを、スクリプトは1000件やり切ります。

作法具体的に
1. まず「何もしない」で動かす実際の処理をせず、「この操作をします」と表示するだけのモード(ドライラン)を先に作る
2. 対象をコピーして試す本物のフォルダではなく、複製に対して実行する
3. 削除ではなく移動os.remove ではなく、退避用フォルダへshutil.moveする。確認してからまとめて消す
4. 件数の上限を入れる最初は10件だけ処理するようにしておく。想定外の大量処理を防ぐ

とくに1番は必ず入れてください。「どのファイルを、どこへ動かすか」を一覧表示して、目で確認してから実行に切り替える。この一手間が、取り返しのつかない事故をほぼ全て防ぎます。

書いたスクリプトを、毎日自動で動かす

手で実行しているうちは、自動化は半分です。定期実行の方法を、環境別に整理します。

環境方法特徴
Windowsタスクスケジューラ標準機能。PCが起動している必要がある
Mac・Linuxcron標準機能。書式は「分 時 日 月 曜日」
VPScron24時間動く。PCの電源に依存しない
クラウドの無料枠各社のスケジュール実行機能サーバー管理が不要

定期実行にするときの注意点が3つあります。

注意点対処
手元で動いたのに、自動実行だと失敗する作業ディレクトリと環境変数が違う。ファイルのパスは絶対パスで書く
失敗しても気づかない結果をログファイルに書き出す。失敗時だけ通知が飛ぶようにする
処理が終わる前に次が始まる実行中を示す印(ロックファイル)を作り、二重起動を防ぐ

1つ目は非常に多いつまずきです。手元では「今いるフォルダ」を基準に動いていたものが、自動実行では別の場所から起動されるため、ファイルが見つからなくなります。パスを最初から絶対パスで書いておけば、この問題は起きません。

Webから情報を取るときの、守るべき線

スクレイピングは強力ですが、相手のサーバーを借りている行為です。次の点は必ず守ってください。

守ること理由
APIがあるならAPIを使う公式に提供されている取得方法があるなら、そちらが正しい
利用規約とrobots.txtを確認する取得を禁止しているサイトがある
アクセス間隔を空ける1秒以上の待機を入れる。連続アクセスは攻撃とみなされる
取得したデータの扱いに注意する再配布や商用利用には、別途権利上の検討が必要
ログイン後の情報は原則取らない規約違反になりやすい領域

技術的にできることと、やってよいことは別です。相手のサーバーに負荷をかけない、規約に反しない、という2点を満たせない場合は、その自動化は諦めるのが正しい判断になります。

この記事で使える無料ツール

どこまで学べば目的を達成できるのか、そのために何時間必要かは、先に見積もっておくと計画が立てやすくなります。独学の期間はどれくらいか目標の立て方を参照してください。

スクリプトを書く前に、CSV・JSON相互変換テキスト整形で済む作業かどうかを確かめると、そもそも自動化が不要なことも分かります。識別子が必要な場合はUUID生成をご利用ください。

自動化する価値があるかの判断

すべてを自動化する必要はありません。作る手間と、浮く時間を比べてください。

作業の性質自動化の価値理由
毎週・毎月繰り返す高い回数が積み上がる
手順が完全に決まっている高い例外処理が要らない
件数が多い高い手作業ではミスが出る
年に1回だけ低い作る時間のほうが長い
毎回判断が入る低い条件を書き切れない
元データの形式が毎回違う低い前処理のほうが大変

目安は「作る時間 × 1 < 浮く時間 × 回数」です。1回30分の作業を月1回やっているなら年6時間。作るのに10時間かかるなら、2年目から得になります。

最初は完全自動を目指さない

「一部だけ自動化して、確認は人がやる」で十分なことが多くあります。ファイルを集めて整形するところまでを自動化し、最終確認と送信は手作業にする。この形なら作る手間が半分以下で済み、事故も起きません。

そもそもコードを書かずに済む場合もあります。テキスト整形CSV・JSON相互変換で足りる作業かを先に確かめてください。

まとめ

Python自動化は「3条件で対象を選ぶ→環境を作る→10行のスクリプトで成功体験→少しずつ育てる」という順番で、未経験からでも確実に到達できます。毎週30分の作業を自動化すれば、1年で26時間。その時間で次の自動化を作る――そんな好循環を、今日の15分の環境構築から始めてみてください。