ExcelファイルをPythonで扱いたい!そんなときに便利なのが Openpyxl です。
「そもそもPythonでExcelをどうやって読み込むの…」と思ったことはありませんか?

・PythonでExcelファイルを開きたいけど、どうすればいいの?
・誤ってファイルを編集しないように、読み取り専用で開きたい。
・VBAのファイル(.xlsm)を読み込む際に、VBAを消さずに使いたい。



それは、openpyxlの load_workbook()
メソッドを使うと
これらの悩みを簡単に解決できます。
この記事では、Pythonでエクセルを操作できるライブラリ「openpyxl」を使ったエクセル読み込みの方法を初心者向けにわかりやすく解説します。
ファイルを安全に開く方法から、VBAを保持したまま読み込む方法まで、実践的に学んでいきましょう!
もちろんコピペも可能な状態にしています。
プログラミング初心者でも大丈夫!
Python × Excel での作業効率化を、一緒に目指しましょう!
よく使う度 | |
難しさ | |
覚えておくと安心度 |
Pythonをしっかり学びたいけれど、「どこから始めればいいかわからない」と迷っていませんか?
そんな方には、UdemyのPython講座がおすすめです。
動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!


\ 自分のペースで学べるPython講座はこちら /
この記事でできるようになること
- Pythonのopenpyxlを使用するとどんなことができるのか?確認を行う
- openpyxlのインストール方法を確認する
- openpyxlでエクセルを読み込む際の設定一覧を習得する
- openpyxlでファイルを開く際の気を付けるポイントを確認する
PythonでExcelを自動化!Openpyxlでできることを徹底解説



Openpyxlはよく聞くけど
そもそも、どんなことができるの?



実は、Excel作業のほとんどを
自動化できるのがOpenpyxlの魅力です!
ExcelがあればVBAを手軽に使えますが、Pythonを使うことでさらに広がるメリットもあります。
- 他のシステムやWebサービスと連携できる
- APIを利用して自動的にデータ取得や更新が可能
- データ分析や機械学習の活用にも便利
- PandasやNumPyと組み合わせて高度な分析ができる
- コードをVBAより簡潔に書けるので、作業効率が向上
- リスト内包表記や関数型プログラミングでシンプルに処理
それでは、Openpyxlを使って具体的にどんなことができるのか見ていきましょう!
Openpyxlでできること一覧
機能 | 説明 |
---|---|
Excelファイルの読み込み | .xlsx や .xlsm 形式のファイルを開いてデータを取得できます。 |
Excelファイルの作成 | 新規のExcelファイルを作成し、シートやデータを追加できます。 |
セルへの書き込み | セルに値や数式を書き込んだり、特定のセルを更新したりできます。 |
シートの操作 | シートの追加・削除・コピーや、名前の変更が可能です。 |
セルの書式設定 | フォントや背景色、罫線の設定など、見た目を整えられます。 |
グラフの作成 | データを元にExcel内で視覚的にわかりやすいグラフを作成できます。 |
マクロの保持 | .xlsm 形式のマクロ付きファイルを開き、VBAコードを保持したまま処理できます。 |
今回は「読み込み」に焦点を当てて解説します!
Openpyxlの中でも Excelファイルの読み込みは、Pythonでの作業を自動化する際に欠かせません。
特に次のような設定を使うことで、さらに便利にファイルを開くことができます。
- 読み取り専用で開く
- 誤ってデータを消したり変更したりする心配がありません。
- VBAを保持して開く
.xlsm
ファイルのマクロを消さずに安全にデータを扱えます。
- データを取得する
- 数式ではなく、計算結果だけを取得したい場合に便利です。
次は、Openpyxlを使った具体的な読み込み方法を見ていきましょう!
PythonでExcelを操作!openpyxlのインストール方法と確認方法
まずは、openpyxlをインストールしましょう。
以下のコマンドをターミナルやコマンドプロンプトで実行してください。
すでにインストール済みの場合は、次のインストールはスキップすることが可能です。
すでにインストールしているか分からない? そんな時の確認方法はこちら
「すでにインストールしているか分からない…」という方は、
以下のコマンドを使って、インストール状況を確認できます。
すべてのインストール済みパッケージを確認
以下のコマンドをターミナルやコマンドプロンプトで実行してください。
openpyxl が一覧に表示されていれば、インストールされています。
pip list
openpyxlがインストールされているか個別に確認
または以下のコマンドをターミナルやコマンドプロンプトで実行してください。
個別で、openpyxlのバージョンなど詳細情報を確認をすることができます。
pip show openpyxl
pip install openpyxl


これで準備が完了です。
次は、Pythonを使って Excelファイルを読み込む方法を実践してみましょう!
openpyxlでExcelファイルを読み込む方法を徹底解説
OpenpyxlでExcelファイルを読み込むには、load_workbook()
関数を使います。
load_workbook()
のパラメーターについて


パラメーター名 | デフォルト値 | 説明 | 使用例 |
---|---|---|---|
filename | 必須 | 読み込むExcelファイルのパスを指定します。 | load_workbook('sample.xlsx') |
read_only | False | 読み込み専用モードで開きます。 メモリ消費を抑えたい場合に有効です。 | load_workbook('sample.xlsx', read_only=True) |
keep_vba | False | マクロ付きのExcelファイル(.xlsm )を読み込む際に使用します。TrueにするとVBAコードを保持します。 | load_workbook('sample.xlsm', keep_vba=True) |
data_only | False | 数式の結果のみを読み込みたい場合にTrueにします。 Falseの場合は数式そのままを読み込みます。 | load_workbook('sample.xlsx', data_only=True) |
keep_links | True | 外部リンクを保持するかどうかを指定します。 メモリ消費を抑えるためにFalseにすることも可能です。 | load_workbook('sample.xlsx', keep_links=False) |
rich_text | False | リッチテキスト形式(書式付きテキスト)を保持します。 Trueにすると書式情報を取得できます。 | load_workbook('sample.xlsx', rich_text=True) |
さらに詳細な仕様については、openpyxl公式ドキュメントを参照してください。


openpyxlの使用例をご紹介
Excelファイルを読み込み専用で開く方法
ファイルを読み込み専用モードで開くには、read_only=True
を設定します。
これにより、メモリ消費を抑えつつ安全にデータを取得できます。
from openpyxl import load_workbook
wb = load_workbook('sample.xlsx', read_only=True)
print("読み込み専用モードで開きました!")
- 誤ってデータを変更してしまうリスクを防げます。
- ファイルサイズが大きい場合でも、軽快に読み込み可能。
マクロ付きファイルをVBAを保持したまま開く方法
keep_vba=True
を使用すると、マクロ付きExcelファイル(.xlsm)を読み込みながら、VBAコードを保持できます。
from openpyxl import load_workbook
wb = load_workbook('macro_sample.xlsm', keep_vba=True)
print("マクロ付きファイルをVBAを保持したまま開きました!")
- マクロを含むファイルを破損せずに読み込めます。
- VBAを使った自動化処理と組み合わせる際に便利。
数式の結果のみを取得する方法
data_only=True
を設定すると、Excelの数式ではなく計算結果だけを取得できます。
from openpyxl import load_workbook
wb = load_workbook('formula_sample.xlsx', data_only=True)
sheet = wb.active
print(sheet['B2'].value) # 数式の結果を取得
- 数式を解析せず、計算結果だけを取得できるため高速。
- レポート作成やデータ抽出に最適。
外部リンクを無効化してファイルを開く方法
keep_links=False
を使用すると、Excelファイル内の外部リンクを無効化して開けます。
特にメモリ消費を抑えたい場合に役立ちます。
from openpyxl import load_workbook
wb = load_workbook('linked_sample.xlsx', keep_links=False)
print("外部リンクを無効化して開きました!")
- 外部リンクの読み込み時間を短縮。
- リンク切れの影響を受けずにファイルを開ける。
書式付きテキストを保持して読み込む方法
rich_text=True
を使うと、セル内の書式情報を保持したまま読み込めます。
書式付きのデータを活用したい場合に有効です。
from openpyxl import load_workbook
wb = load_workbook('rich_text_sample.xlsx', rich_text=True)
sheet = wb.active
print("書式付きテキストを保持しました!")
- リッチテキスト形式の情報を活用して、より精度の高いデータ分析が可能。
- レポートやプレゼン資料の作成にも活用できます。
すべてのパラメーターを使った総合的な例
以下は、load_workbook()
の全てのパラメーター を使った例です。
from openpyxl import load_workbook
wb = load_workbook(
filename='example.xlsx',
read_only=True,
keep_vba=True,
data_only=True,
keep_links=False,
rich_text=True
)
print("全パラメーターを指定してファイルを開きました!")
- 状況に応じてパラメーターを柔軟に調整可能。
- メモリ使用量の最適化やマクロの保持など、多様なニーズに対応。
openpyxlを使用してファイルを開く際の注意ポイントについて
openpyxl
を使用してExcelファイルを操作する際には、いくつかの注意点があります。
ここでは、よくある3つの問題とその対策を紹介します。


注意1 : .xls
ファイルは開けないので注意しましょう。
openpyxlは .xlsx
ファイルや .xlsm
ファイルに対応していますが、古いExcel形式の .xls
ファイルはサポートされていません。.xls
ファイルを開こうとするとエラーが発生するため注意が必要です。
※.xlsファイルは、Excel 2007以前のバージョンで使用されていた古いファイル形式のことです。
対策について
■ 対策1: .xls
ファイルを .xlsx
ファイルに変換する
Excelを開き 次の方法で.xlsx
ファイルに変換しましょう。
- 「ファイル」タブをクリックします
- 「情報」を選択します。
- 「変換、互換モード」を押すことで、
.xls
形式から.xlsx
形式に変換することができます。


■ 対策2 xlrd
の使用を検討しましょう。
.xls
ファイルは 、Pythonのxlrd
ライブラリを使うことで読み取ることができます。
import xlrd
book = xlrd.open_workbook('example.xls')
■ 対策3 pandas
で読み込みを検討しましょう。
Pythonのpandas
ライブラリを使用しても .xls
ファイルも読み込むことができます。
import pandas as pd
df = pd.read_excel('example.xls')
注意2 : 読み込み専用モードで開くとファイルの保存はできません
openpyxlで read_only=True
を指定すると、ファイルをメモリ効率よく読み込むことができます。
特に大きなExcelファイルを高速に読み込みたい場合には便利ですが、編集や保存はできなくなるため注意が必要です。
対策について
ファイルの編集や保存が必要な場合は、read_only=False
を指定してファイルを開きましょう。
from openpyxl import load_workbook
# 読み込み専用で開かない
wb = load_workbook('example.xlsx', read_only=False)
sheet = wb.active
sheet['A1'] = '変更しました'
wb.save('example.xlsx')
注意3: 数式の結果が取得できない場合がある
openpyxlで data_only=True
を指定すると、Excelファイルの数式結果を取得できます。
ただし、Excelファイルが保存されていない場合や、外部リンクを参照している場合は、正しい数式結果を取得できないことがあります。
対策について
数式をそのまま取得したい場合は、data_only=False
を使用しましょう。
from openpyxl import load_workbook
# 数式を取得
wb = load_workbook('example.xlsx', data_only=False)
sheet = wb.active
# セルB2の数式を取得
print(sheet['B2'].value) # 数式そのものを取得
数式の結果を取得したい場合は、Excelでファイルを保存してからdata_only=True
を指定して読み込みます。data_only=True
を使用する場合は、必ずExcelファイルを保存してから読み込みましょう。
保存しないまま読み込むと、最新の数式結果が反映されません。
wb = load_workbook('example.xlsx', data_only=True)
print(sheet['B2'].value) # 数式の結果を取得
この記事のまとめ
この記事では、Pythonのopenpyxlを使ってExcelファイルを読み込む方法について詳しく解説しました。
ファイルを安全に開く方法や、マクロ付きファイルの扱い方、数式の結果を取得する方法まで、実践的な内容を学ぶことができましたね。
ポイントのおさらい
- PythonでExcelを自動化!Openpyxlでできることを徹底解説
- openpyxlを活用すると、Excelの読み込み・書き込み・書式設定・シート操作など、さまざまな作業をPythonで自動化できます。
さらに、マクロ付きファイルや数式結果の読み込みにも対応しているため、Excel業務の効率化に最適です。
⇒ 「PythonでExcelを自動化!Openpyxlでできることを徹底解説」をもう一度見る
- openpyxlを活用すると、Excelの読み込み・書き込み・書式設定・シート操作など、さまざまな作業をPythonで自動化できます。
- PythonでExcelを操作!openpyxlのインストール方法と確認方法
- openpyxlを使う前に必要なのは、環境設定です。
インストール方法や、インストール済みかどうかの確認方法を学ぶことで、エラートラブルを未然に防げます。
⇒ 「PythonでExcelを操作!openpyxlのインストール方法と確認方法」をもう一度見る
- openpyxlを使う前に必要なのは、環境設定です。
- openpyxlでExcelファイルを読み込む方法を徹底解説
- load_workbook()を使うことで、Excelファイルを簡単に読み込むことができます。
読み取り専用モードや、VBAを保持したままの読み込み、数式の結果を取得 する方法も紹介しました。
⇒ 「openpyxlでExcelファイルを読み込む方法を徹底解説」をもう一度見る
- load_workbook()を使うことで、Excelファイルを簡単に読み込むことができます。
- openpyxlを使用してファイルを開く際の注意ポイントについて
- openpyxlでは
.xls
ファイルが開けないことや、読み込み専用モードではファイルを保存できない点、数式の結果が取得できない場合がある点に注意が必要です。
それぞれの問題に対する具体的な対策も紹介しました。
⇒ 「openpyxlを使用してファイルを開く際の注意ポイントについて」をもう一度見る
- openpyxlでは
今回の学びを活用するために
Pythonと openpyxl
の知識をさらに深めたい方は、以下の記事も参考にしてください。

