こちらの記事は中級者向けの内容となっています。
- Pythonを使って業務の効率UPにつなげたい
- VBAよりもPythonの豊富なライブラリを便利に活用したい!
といった要望があってこちらのブログにいらしたでしょうか?
お任せください!本記事ではOpenpyxlの使い方を簡潔に説明しております。
初心者向けの情報、Pythonのインストール方法について知りたいという方は
ぜひこちらの記事を読んでみてください↓
✅ Pythonからのエクセル操作はこんなに簡単!
Pythonを使うと、手作業で行っていたエクセルの作業を自動で進められるようになります。
たとえば、表の作成や計算、文字の入力などを一瞬で済ませることが可能です。
なぜこれが便利かというと、毎回同じような作業をくり返す必要がなくなるからです。
特に皆さんが、名簿や一覧表を作るときなどに役立ちます。
ポイントとしては、次のようなことができます。
Pythonは初めてでもやさしく学べますので、心配はいりません。
これから順番にエクセル操作のやり方を紹介いたします。
✅ PythonとOpenpyxlの準備方法
Pythonでエクセルを操作するには、「Openpyxl」というライブラリを入れる必要があります。
これがないと、エクセルに命令を出すことができません。
その手順は以下のとおりです。
Openpyxlを入れるやり方
pip install openpyxl
これをコマンドライン上で打つだけです。
たったこれだけで、準備は完了します。
✅ Openpyxlでエクセルファイルを作る
PythonとOpenpyxlが使えるようになったら、いよいよエクセルファイルを作成してみましょう。
まずは新しいエクセルファイルを作って、そこに文字を書いてみる流れを紹介します。
思っているよりもずっとかんたんです。
新しいエクセルファイルの作り方
はじめに以下のコードを実行してみましょう。
from openpyxl import Workbook
book = Workbook()
book.save("sample.xlsx")
上のような3行で、openpyxlをimportした上でWorkbookの関数を使用すると
「sample.xlsx」という名前の新規ブックを作成できます。
シートに文字を書く方法
シートに文字を書く方法は以下です。
from openpyxl import Workbook
book = Workbook()
sheet = book.active
sheet["A1"] = "こんにちは"
book.save("sample.xlsx")
これで、A1という場所に「こんにちは」と表示されるエクセルができます。
まとめると以下のようになります。
Pythonの中級者以上であれば、すぐにできる内容です。
✅ Pythonでエクセルを読み書きする方法
Pythonを使えば、すでにあるエクセルファイルを読みこんで、内容を確認したり書きかえたりできます。
これができると、エクセルの自動処理がとてもはかどります。
やり方は以下のようにシンプルです。
from openpyxl import load_workbook
book = load_workbook("sample.xlsx")
sheet = book.active
このようにすると、「sample.xlsx」というファイルを開いて中のシートを使えるようになります。
セルのデータを取り出す方法
セルのデータを取り出す方法は以下です。
value = sheet["A1"].value
print(value)
このコードで、A1セルに入っている文字や数字を取り出せます。
セルに新しいデータを書きこむ方法
セルに新しいデータを書きこむ方法は以下です。
sheet["A2"] = "Pythonで追加"
book.save("sample.xlsx")
このようにすれば、A2セルに文字を入力できます。
ポイントを整理すると:
この流れを覚えておけば、自由にエクセルを動かせます。
✅ エクセルの表を自動で作る方法
Pythonを使うと、表を自分で作らなくても自動で書いてくれるようになります。
これを使えば、記録簿や一覧表などを手間なく作れます。
行や列を繰り返して書く方法
例として、キメツ学園の生徒のテスト点数を記録するエクセルファイルを作ってみましょう。
from openpyxl import Workbook
book = Workbook()
sheet = book.active
data = ["名前", "数学", "国語", "英語", "合計"]
for i in range(len(data)):
sheet.cell(row=1, column=i+1, value=data[i])
book.save("table.xlsx")
まずこのようにすると、1行目に「名前」「各教科の点数」「合計」のラベルが入ります。
実行イメージ
先ほどのプログラムを実行するとこのような結果が得られます。

計算結果をエクセルに書き出す方法
このコードでは、キメツ学園の各生徒の点数とその合計を自動で出力しています。
from openpyxl import Workbook
book = Workbook()
sheet = book.active
data = ["名前", "数学", "国語", "英語", "合計"]
for i in range(len(data)):
sheet.cell(row=1, column=i+1, value=data[i])
name = ["竈門炭治郎", "我妻善逸", "嘴平伊之助"]
math = [80, 90, 0]
naitive_lang = [95, 70, 0]
english = [5, 3, 0]
for i in range(len(name)):
# 名前
sheet.cell(row=i+2, column=1, value=name[i])
# 数学の点数
math_score = math[i]
sheet.cell(row=i+2, column=2, value=math[i])
# 国語の点数
naitive_lang_score = naitive_lang[i]
sheet.cell(row=i+2, column=3, value=naitive_lang[i])
# 英語の点数
english_score = english[i]
sheet.cell(row=i+2, column=4, value=english[i])
# 合計点数
total_score = math_score + naitive_lang_score + english_score
sheet.cell(row=i+2, column=5, value=total_score)
book.save("kimetsu_school_test.xlsx")
実行イメージ
先ほどのプログラムを実行するとこのような結果が得られます。

まとめると:
手作業で表を作るより、はるかに早くて正確です。
✅ Pythonでエクセル操作するときの注意点
便利なPythonですが、エクセルを扱うときには気をつけるべきことがいくつかあります。
これを知っておくと、エラーやバグを回避できます。
特に大事な注意点は以下の3つです。
また、セルの位置(A1など)をまちがえたり、データが入っていないところを読もうとすると、エラーが出ることもあります。
こうしたトラブルを防ぐために、コードを書くときは一つずつ確かめながら試していくのがよいでしょう。
✅ まとめ:Pythonでのエクセル操作は超便利!
以上を通じて、
- Pythonを使って業務の効率UPにつなげたい
- VBAよりもPythonの豊富なライブラリを便利に活用したい!
といったようなリクエストにお答えしてきました。
Pythonでエクセルを動かす方法は、思っているよりもかんたんです。
特にOpenpyxlを使えば、初心者の方でもすぐに自動化の楽しさを体験できます。
この記事で紹介した内容をまとめると:
面倒だった作業が、数行のコードで終わることに感動される方も多いです。
これをきっかけに、Pythonでの自動化やプログラミングにさらに興味を持っていただけたら嬉しく思います。
ぜひ、身近に活用できる場面から試してみてください。
コメント