TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

Pythonで始めるRPAの初歩

Pythonで始めるRPA ── 初心者向け入門ガイド

はじめに

近年、企業の業務効率化や自動化の手段としてRPA(Robotic Process Automation)が注目されています。RPAは、ルーチンワークを自動化することで時間短縮人的ミスの削減を可能にします。

RPAツールには商用のもの(UiPath, Automation Anywhere, Blue Prismなど)もありますが、Pythonを使えば無料で柔軟なRPAを作成できます。本記事では、Pythonを使ったRPAの基礎を初心者向けに解説します。


RPAとは?

RPAの基本概念

RPAは、定型業務をソフトウェアロボットが自動で実行する技術です。例えば、以下のような業務を自動化できます。 - データ入力・抽出 - ファイル操作 - メール送信 - Webスクレイピング - Excelの処理

Pythonを使うメリット


環境構築

PythonでRPAを実装するために、以下のツールを準備します。

1. Pythonのインストール

Pythonがインストールされていない場合は、以下の手順でインストールしてください。 1. Python公式サイトから最新版をダウンロード 2. インストーラを実行し、「Add Python to PATH」にチェックを入れてインストール

確認のため、以下のコマンドを実行:

python --version

または

python3 --version

Pythonのバージョンが表示されればOKです。

2. 必要なライブラリのインストール

RPAに便利なPythonライブラリをインストールします。

pip install pyautogui selenium openpyxl pandas
ライブラリ 役割
PyAutoGUI マウス・キーボードの自動操作
Selenium Webブラウザの自動操作
openpyxl Excelデータの読み書き
pandas データの処理・分析

PythonでRPAを実践!

1. 画面操作の自動化(PyAutoGUI)

PyAutoGUIを使って、マウスの移動・クリック、キーボード入力を自動化できます。

マウスを動かしてクリック

import pyautogui

# マウスを指定座標(100, 200)に移動してクリック
pyautogui.moveTo(100, 200, duration=1)
pyautogui.click()

特定のキーを入力

pyautogui.write("Hello, world!", interval=0.1)  # 文字を入力
pyautogui.press("enter")  # Enterキーを押す

スクリーンショットを取得

screenshot = pyautogui.screenshot()
screenshot.save("screenshot.png")

2. Webブラウザの自動操作(Selenium

Seleniumを使うと、Webページのデータ入力や取得を自動化できます。

ブラウザを開いてGoogle検索

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# Chromeブラウザを開く
driver = webdriver.Chrome()
driver.get("https://www.google.com")

# 検索ボックスを探してキーワードを入力
search_box = driver.find_element("name", "q")
search_box.send_keys("Python RPA")
search_box.send_keys(Keys.RETURN)  # Enterキーを押す

注意: ChromeDriverが必要です。
公式サイトからChromeのバージョンに合ったものをダウンロードしてください。


3. Excelデータの処理(openpyxl)

ExcelのデータをPythonで操作し、自動入力やデータ抽出を行います。

Excelファイルを読み込む

import openpyxl

# Excelファイルを開く
wb = openpyxl.load_workbook("data.xlsx")
sheet = wb.active

# A1セルの値を取得
print(sheet["A1"].value)

Excelにデータを書き込む

sheet["B2"] = "Pythonで自動入力"
wb.save("data.xlsx")

応用例

1. 定期的なレポート作成

  • Webからデータを取得し、Excelに整理
  • 自動でレポートを作成し、メールで送信

2. Webフォームの自動入力

  • Web上のフォームに定型データを入力
  • Seleniumを使ってボタンをクリック

3. ファイルの整理

  • 指定フォルダ内のファイルを種類別に分類
  • 定期的に不要なファイルを削除

エラー対策とトラブルシューティング

1. マウス・キーボード操作の遅延

pyautogui人間と同じ速度で操作させる方がエラーを防ぎやすいです。

pyautogui.write("Hello", interval=0.2)  # 文字入力の間隔を0.2秒にする

2. Webページの読み込みが遅い

Seleniumの操作が速すぎる場合、要素が読み込まれる前に処理が進んでしまうことがあります。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 要素が表示されるまで待機
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.NAME, "q"))
)

3. Excelファイルが開かない

openpyxlxlsx形式のファイルのみ対応。
xls形式の場合は、pandasxlrdを使用してください。

import pandas as pd

df = pd.read_excel("data.xls", engine="xlrd")
print(df)

まとめ

Pythonを使ったRPAは、簡単なスクリプトを組むだけで業務の自動化が可能です。
本記事で紹介した基本技術を組み合わせることで、より実用的な自動化を実現できます。

これからの学習のステップ

  1. 簡単なRPAスクリプトを作ってみる
  2. 業務に合わせたカスタマイズを行う
  3. スケジュール実行(タスクスケジューラやcron)
  4. OCR(画像認識)やAIを活用したRPAに挑戦

Pythonの強力なライブラリを活用して、あなたの業務を効率化しましょう!

参考資料


簡単に纏まっています。


網羅的に書かれています。