こちらの記事は中級者向けの内容となっています。
- Pythonを使って業務の効率UPにつなげたい
- VBAよりもPythonの豊富なライブラリを便利に活用したい!
といった要望があってこちらのブログにいらしたでしょうか?
お任せください!本記事ではOpenpyxlの使い方を簡潔に説明しております。
初心者向けの情報、Pythonのインストール方法について知りたいという方は
ぜひこちらの記事を読んでみてください↓

こんにちは。この記事を書いたHATOBA(はとば)です。
- 開発経験5年以上のエンジニア
- 大学時代に勉強~現場での業務経験もあり
- プログラミング、論理思考が得意
✅ 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という場所に「こんにちは」と表示されるエクセルができます。
まとめると以下のようになります。
- Workbookで新しいエクセルを作る
- 「セル」に文字を入れることで中身を編集
- 最後にsaveで保存することが大事
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セルに文字を入力できます。
- ポイントを整理すると:
-
load_workbook
でエクセルを開くsheet["A1"].value
で中身を読むsheet["A1"] = "文字"
で指定のセルに値を入れる- 変更後はかならず
save
で保存
この流れを覚えておけば、自由にエクセルを動かせます。
✅ エクセルの表を自動で作る方法
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行目に「名前」「各教科の点数」「合計」のラベルが入ります。
実行イメージ
先ほどのプログラムを実行するとこのような結果が得られます。


計算結果をエクセルに書き出す方法
このコードでは、キメツ学園の各生徒の点数とその合計を自動で出力しています。
※生徒は炭治郎、善逸、伊之助です。伊之助はケモノなのですべて0点です笑
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つです。
- エクセルを開いたままだと保存できない
→ ファイルを閉じてからPythonで操作しましょう。 - ファイルの名前や場所を正確に書く
→ たとえば「sample.xlsx」と「sample.XLSX」は、厳密には別のファイルと見なされます。 - 保存を忘れると何も変わらない
→book.save(...)
を最後に置いて、結果の反映を忘れないようにしましょう。
また、セルの位置(A1など)をまちがえたり、データが入っていないところを読もうとすると、エラーが出ることもあります。
こうしたトラブルを防ぐために、コードを書くときは一つずつ確かめながら試していくのがよいでしょう。
[PR] 自宅で現役エンジニアから学べる TechAcademy(テックアカデミー) まずは無料相談!
当ブログでは、IT業界への転職、副業・フリーランスとしての働き方を目指している方に
「自宅で現役エンジニアから学べる TechAcademy」をおすすめしてます。


完全オンライン完結型の学習サービスなので、場所や時間を選ばず、
自宅やカフェなど好きな環境で効率的にスキルを磨けます。
どういうサービス?
最大の特徴は、指導を担当するのがすべて現役のプロエンジニアである点です。
実務で使われる知識や考え方を直接学べるため、教材だけでは得られない実践的なスキルを習得できます。
学習中は週2回のマンツーマンメンタリングで進捗確認や課題のフィードバックが受けられるほか、
毎日15時〜23時に対応しているチャットサポートを活用すれば、疑問点をその日のうちに解消可能です。



コース申し込まれる方は初心者が9割以上らしいですよ~ ほぼ未経験とかでも心配いらないです!
挫折しにくい学習設計が用意されているため、独学で続かなかった方でも安心です。


申込方法教えて!
興味ある方は、まず公式サイトの無料相談や無料体験を申し込んでみてください(※下側に画像リンクを用意してます)
評判とか口コミどうなん?
受講生の印象としては
「サポートが丁寧で続けやすい」「転職活動で役立った」
という声が多く、
一方で「担当によって対応に差がある」といった口コミも一部あります。
受講するメリットは?
TechAcademyのメリットは「学んだスキルをそのままキャリアにつなげやすい点」です。
受講中に作成するポートフォリオは転職や案件獲得の武器になり、
キャリア支援サービス「TechAcademyキャリア」ではポートフォリオ添削や面接対策、
企業からのスカウトを受けることも可能。



受講した人には副業の仕事を1案件以上斡旋してくれるんだって~
転職はもちろん、副業で案件を取るためのノウハウも学べるため、
学習から収入アップまでの流れをスムーズに描けます。
料金どのぐらいなの?
料金はコースや期間によって異なりますが、例えばPythonやWeb開発の4週間コースは社会人で約17万円から。
より長期的に学ぶプランや転職保証コースでは数十万円〜最大80万円台となります。
それって私向きなの?
このように、TechAcademyは
- 効率よくスキルを身につけたい
- 短期間で転職や副業につなげたい
という方に
最適な学習サービスです。
逆に、
- 対面授業で学びたい方
- 自分一人で学習を進められる自信がある方
にはあまり向かないかもしれません。
もし
- 今の仕事に不安がある
- 副業で新しい収入源を得たい
- 将来フリーランスとして自由に働きたい
と思っているのであれば
TechAcademyはキャリアを大きく変えるきっかけになるはずです。



こちらのリンクから申し込みの無料相談でAmazonギフト券500円分が必ずもらえますよ~ やってみて損はないはず!
✅ まとめ:Pythonでのエクセル操作は超便利!
以上を通じて、
- Pythonを使って業務の効率UPにつなげたい
- VBAよりもPythonの豊富なライブラリを便利に活用したい!
といったようなリクエストにお答えしてきました。
Pythonでエクセルを動かす方法は、思っているよりもかんたんです。
特にOpenpyxlを使えば、初心者の方でもすぐに自動化の楽しさを体験できます。
この記事で紹介した内容をまとめると:
- PythonとOpenpyxlの準備はすぐにできる
- エクセルファイルを作る・読む・書くの操作ができる
- 表の自動作成や計算も自由自在
- 注意点をおさえれば失敗もしにくい
面倒だった作業が、数行のコードで終わることに感動される方も多いです。
これをきっかけに、Pythonでの自動化やプログラミングにさらに興味を持っていただけたら嬉しく思います。
ぜひ、身近に活用できる場面から試してみてください。
コメント