PythonでExcelの操作を自動化する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでExcelの操作を自動化する方法について現役エンジニアが解説しています。Excelの操作を自動化する方法にはマクロを使う方法、VBAを使う方法、Pythonを使う方法があります。PythonのOpenPyXLライブラリを使った書き方や使い方を解説します。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

PythonでExcelの操作を自動化する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PythonでExcelの操作を自動化する方法について詳しく説明していくね!

大石ゆかり

お願いします!

この記事では、Pythonを使ってプログラム上でExcelファイルを操作する方法について解説します。

目次

 

Excelの操作を自動化する方法

まずは、Excelの操作を自動化する方法について紹介しておきます。

主に3つの方法があります。

1つ目は、マクロを使う方法です。この方法は、Excel上で直接できて、プログラミングの知識などを必要とせずに行なうことができます。ただし、簡単なだけに、複雑な処理を行なうにあまり向いていません。

2つ目は、VBA(Visual Basic for Application)を使う方法です。これは、Microsoft社が提供するプログラミング言語のことで、Office製品の操作を自動化することなどができます。

3つ目は、この記事で紹介するPythonを使った方法です。PythonのライブラリであるOpenPyXLを使うと、Pythonを使ってExcelファイルの操作を自動化することができます。VBAを使った自動化よりも操作の自由度が高いことが特徴であると言えます。

[PR] Pythonで挫折しない学習方法を動画で公開中

OpenPyXLとは

OpenPyXLというのは、PythonでExcelファイルを操作するために開発された外部ライブラリです。

PandasなどでもExcelファイルを読み込んで操作することはできますが、OpenPyXLを使うことによって、セル単位での細かな操作や、Excelのアプリケーションで実際に行なうような操作を実現することができます。

OpenPyXLの使い方

OpenPyXLの基本的な機能についていくつか紹介をしていきますが、その前にまず、OpenPyXLをインストールをする必要があります。お使いの環境に応じた方法で、OpenPyXLをインストールしましょう。

>pip install openpyxl

(pipは一例です。)

これでインストールは完了ですが、プログラム中でOpenPyXlを使うには

import openpyxl

でインポートする必要があるので注意しておいてください。

OpenPyXLでは、Excelのファイルに合わせて3つのクラスが定義されています。Workbookクラス、Worksheetクラス、Cellクラスです。

これらのクラスを使って、エクセルファイル、ワークシート、セル、にアクセスして操作を行ないます。

Workbookの読み込み

Workbookオブジェクト = openpyxl.load_workbook("エクセルファイルのパス")

として、Workbookを読み込みます。

Worksheetの操作

読み込んだWorkbookのオブジェクトを使って、

Workbookオブジェクト.sheetnames

とすると、Workbookに含まれているWorksheetのリストが、

['Sheet1', 'Sheet2', ...]

のような形で返ってきます。このリストにあるWorksheet名を使って、

Worksheetオブジェクト = Workbookオブジェクト['Worksheet名']

と記述すれば、Worksheetを読み込むことができます。また、Worksheet名リストのインデックス番号を用いて、

Worksheetオブジェクト = Workbookオブジェクト.worksheets[インデックス番号]

と指定しても、同様にWorkbookを読み込むことができます。

Worksheet名を変更したい場合は、

Worksheetオブジェクト.title = '変更後の名前'

Worksheetを追加したい場合は、

Workbookオブジェクト.create_sheet(title = '新しいWorksheet名')

Worksheetをコピーしたい場合は、

Workbookオブジェクト.copy_worksheet(コピーしたいWorksheetオブジェクト)

Worksheetを削除したい場合は、

Workbookオブジェクト.remove(削除したいWorksheetオブジェクト)

とします。

セルの操作

Worksheet内のセルの範囲は、

Worksheetオブジェクト.min_column

Worksheetオブジェクト.max_column

Worksheetオブジェクト.min_row

Worksheetオブジェクト.min_row

として、列、行の最大値と最小値をそれぞれ、column、rowで取得することで確認できます。

セルにアクセスするには、

Cellオブジェクト = Worksheetオブジェクト['セルのアドレス']

また、’A1:D4’のような範囲を指定すると、複数セルがタプルとしてまとめられて取得できます。

Cellオブジェクトのタプル = Worksheetオブジェクト['セルの範囲']

セルの値を読み書きするには、

取得する変数 = Cellオブジェクト.value
Cellオブジェクト.value = 変更後の値

などのようにして実現できます。

これらのWorkbook、Worksheet、Cellオブジェクトの操作とPythonで行なうことのできる操作を組み合わせることによって、複雑な処理や、繰り返しの多い処理などの操作の自動化を自由に行なうことが可能です。

細かい操作については、公式のチュートリアルなどを見てみると良いでしょう。

まとめ

この記事では、Pythonを使ってエクセルを操作するためのライブラリであるOpenPyXLの使い方について説明しました。

エクセル操作をPythonで自動化することによって、効率的な仕事を実現することもできると思いうので、ぜひ参考にしてみてください。

監修してくれたメンター

小倉翔悟(おぐらしょうご)

AIプログラミングを使って開発を行う大学3年生。

プログラミング歴は約3年でPythonは割と得意。好きな物理理論は一般相対性理論で動物も好き。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。