Pythonで業務自動化を始める前に知っておくこと
Pythonは業務自動化に強力なツールですが、VBAと違って「すぐ始められる」ものではありません。社内SEやIT担当者がPythonを導入・管理する立場として、Pythonとは何か、VBAとの違い、始める前に知っておくべき注意点を整理します。
Pythonとは
Pythonは1991年に公開されたプログラミング言語です。現在、世界で最も広く使われている言語のひとつで、業務自動化・データ分析・Web開発・AI/機械学習など幅広い用途で使われています。公式サイトは python.org です。
特徴として「読みやすく書きやすい構文」が挙げられます。他の言語と比べてコードがシンプルで、プログラミング入門としても選ばれることが多いです。
# Pythonの雰囲気(Excelファイルを読み込んで集計する例)
import pandas as pd
df = pd.read_excel("売上データ.xlsx")
print(df.groupby("担当者")["売上金額"].sum())
VBAのコードと比べると、やろうとしていることが文章に近い感覚で読めることがわかります。
VBAとの最大の違い:環境構築が必要
VBAはExcelに最初から入っています。エディタを開けばすぐ書けます。
Pythonは違います。まず「Pythonをインストールする」ところから始まります。さらに、業務自動化でよく使うライブラリ(openpyxl・pandas・requestsなど)も別途インストールが必要です。
Pythonを使い始めるまでの手順(概略)
- python.org から公式インストーラーをダウンロードしてインストール
- コマンドプロンプト(またはターミナル)を開く
pip install pandas openpyxlのようなコマンドでライブラリをインストール- コードを書いて
.pyファイルとして保存 - コマンドプロンプトで
python ファイル名.pyと入力して実行
VBAと違い、「ダブルクリックで実行」という感覚ではなく、コマンドラインに慣れる必要があります。これが最初のハードルです。
知っておくべき注意点
Pythonのバージョンに注意する
Pythonには現在Python 3系が使われています(Python 2系は2020年にサポート終了)。インターネットで古い記事を参考にすると、Python 2向けのコードが出てくることがあります。動かないときはバージョンの違いを疑ってください。
インストール時は必ず最新のPython 3系を選んでください。
ライブラリのバージョン管理が必要になる
Pythonの強みは豊富なライブラリですが、ライブラリのバージョンによって動作が変わることがあります。「昨日まで動いていたのに今日動かない」という現象が、ライブラリのアップデートで起きることがあります。
本格的に使うようになったら「仮想環境(venv)」という仕組みを使い、プロジェクトごとにライブラリのバージョンを分離することが推奨されます。最初は気にしなくていいですが、頭に入れておいてください。
ファイルパスとエンコーディングに注意する
WindowsでPythonを使うとき、ファイルのパス(場所の指定)と文字コードでつまづくことがあります。
# Windowsのパスでよくあるミス
# バックスラッシュがエスケープ文字として解釈されてしまう
path = "C:\Users\nagashima\data.xlsx" # これは動かないことがある
# 正しい書き方(スラッシュを使う or 文字列の前にrをつける)
path = "C:/Users/nagashima/data.xlsx" # スラッシュに変換
path = r"C:\Users\nagashima\data.xlsx" # rをつけてraw文字列にする
日本語が含まれるファイルを扱うとき、文字コード(encoding)の指定が必要なことがあります。
# CSVファイルを読み込むとき、文字化けしたらencoding指定を試す
import pandas as pd
# 文字化けする場合
df = pd.read_csv("データ.csv")
# Shift-JIS(Windows日本語標準)の場合
df = pd.read_csv("データ.csv", encoding="shift-jis")
# UTF-8の場合
df = pd.read_csv("データ.csv", encoding="utf-8")
エラーメッセージはすべて英語
VBAのエラーは日本語で出ますが、Pythonのエラーは英語です。最初は戸惑いますが、エラーメッセージをそのままコピーして検索すれば、たいていの解決策が見つかります。
# よく見るエラーの意味
FileNotFoundError: そのファイルが見つからない(パスが間違っている)
ModuleNotFoundError: そのライブラリがインストールされていない
SyntaxError: 文法の誤り
TypeError: 型が合っていない(数値と文字列を混在させたなど)
IndentationError: インデント(字下げ)が正しくない
Pythonはインデント(行頭の字下げ)が文法の一部です。VBAは見た目だけの問題でしたが、Pythonではインデントがズレるとエラーになります。
# 正しいインデント
for i in range(10):
print(i) # 半角スペース4つ字下げ
# これはエラーになる
for i in range(10):
print(i) # インデントがない
セキュリティ:Pythonスクリプトの共有に注意
Pythonのコードは .py ファイルとして保存されます。このファイルを他の人に渡すとき、コードの中にパスワードやAPIキーが書かれていないか注意してください。
# これは絶対NG(パスワードをコードに直書き)
password = "mypassword123"
# パスワードは環境変数や設定ファイルで管理する
import os
password = os.environ.get("MY_PASSWORD")
社内で共有する分には問題になりにくいですが、コードをインターネット上(GitHubなど)に上げるときは特に注意が必要です。
Pythonが本領を発揮する業務自動化の例
環境構築の手間をかけてでもPythonを使う価値があるのは、こういった処理です。
複数ファイルの一括処理
import glob
import pandas as pd
# フォルダ内の全Excelファイルを読み込んで結合する
files = glob.glob("./月別データ/*.xlsx")
all_data = pd.concat([pd.read_excel(f) for f in files])
all_data.to_excel("年間集計.xlsx", index=False)
Webサイトからデータを取得する
import requests
from bs4 import BeautifulSoup
# 特定のWebページからテキストを取得する
response = requests.get("https://example.com")
soup = BeautifulSoup(response.text, "html.parser")
print(soup.find("h1").text)
スケジュール実行
import schedule
import time
def 毎朝の集計処理():
print("集計を実行中...")
# ここに処理を書く
schedule.every().day.at("09:00").do(毎朝の集計処理)
while True:
schedule.run_pending()
time.sleep(60)
「まずVBA、次にPython」を勧める理由
VBAを知っている人がPythonを学ぶ場合、繰り返し処理・条件分岐・変数といった基本概念はすでに理解しています。あとは「Pythonの書き方の違い」を覚えるだけなので、習得が速くなります。
逆に、プログラミングをまったく知らない状態からPythonを始めると、言語の学習と環境構築と業務への応用を同時にこなすことになり、挫折しやすくなります。
VBAで「自動化って便利だな」という感覚を掴んでからPythonに移行するのが、現実的で挫折の少い順番です。
まとめ
Pythonは業務自動化に非常に強力ですが、「すぐ始められる」ものではありません。環境構築・ライブラリ管理・パスの書き方・エンコーディングといった最初のハードルがあります。VBAでの自動化経験がある場合、そのスキルを活かしながらPythonに移行するのがスムーズです。まず動く環境を作ることを最初のゴールにして、難しく考えすぎず試してみてください。