超簡単!Pythonプログラミングでエクセルを操作する方法

Python

こちらの記事は中級者向けの内容となっています。

  • 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行目に「名前」「各教科の点数」「合計」のラベルが入ります。

実行イメージ

先ほどのプログラムを実行するとこのような結果が得られます。

計算結果をエクセルに書き出す方法

このコードでは、キメツ学園の各生徒の点数とその合計を自動で出力しています。

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など)をまちがえたり、データが入っていないところを読もうとすると、エラーが出ることもあります。

こうしたトラブルを防ぐために、コードを書くときは一つずつ確かめながら試していくのがよいでしょう。

✅ まとめ:Pythonでのエクセル操作は超便利!

以上を通じて、

  • Pythonを使って業務の効率UPにつなげたい
  • VBAよりもPythonの豊富なライブラリを便利に活用したい!

といったようなリクエストにお答えしてきました。

Pythonでエクセルを動かす方法は、思っているよりもかんたんです。
特にOpenpyxlを使えば、初心者の方でもすぐに自動化の楽しさを体験できます。

この記事で紹介した内容をまとめると:

  • PythonとOpenpyxlの準備はすぐにできる
  • エクセルファイルを作る・読む・書くの操作ができる
  • 表の自動作成や計算も自由自在
  • 注意点をおさえれば失敗もしにくい

面倒だった作業が、数行のコードで終わることに感動される方も多いです。

これをきっかけに、Pythonでの自動化やプログラミングにさらに興味を持っていただけたら嬉しく思います。
ぜひ、身近に活用できる場面から試してみてください。

コメント

タイトルとURLをコピーしました