現在では表計算ソフトのExcelは企業の業務に欠かせない存在となっていますよね。
ですが、実際に活用していくと不便さを感じる場面もあり、これが業務の足かせとなって効率を下げてしまうことも。ところが今このExcelはプログラミング言語「Python」と組み合わさることで、操作を自動化して業務の効率化を行えるようになっています。
ちなみにどうやって自動化を行うのかというと、ExcelとPythonを結び付けるモジュール「OpenPyXL」を活用していくのです。
今回はこのExcel+Pythonで何ができるのかからExcel+Pythonを実現する「OpenPyXL」の基礎や準備について。また、簡単なExcelファイル、「シート」「セル」の操作方法をそれぞれ説明していきます。ぜひ、Excel+Pythonの自動化で日々の業務効率を向上させてください。
Excel+Pythonで何ができるのか
それでは、Excel+Pythonで何ができるのかについて説明していきましょう。こちらでは以下のようなことが行えます。
- Excelで行っている作業をPythonで自動化できる
- マクロより高い自由度で活用できる
ですから、Excel内でできないことは基本的にマクロでもできないため、自由度はそれほど高くはないのです。
以上がExcel+Pythonで何ができるのかについてです。
これを踏まえて以下では、Excel+Pythonを実現する「OpenPyXL」について説明してきましょう。
Excel+Pythonの「OpenPyXL」とは
このExcel+Pythonを実現する「OpenPyXL」は以下のようなものです。
- Pythonのモジュールである
- Excelファイルxlsxに読み書きなどの操作を行える
- 他のPythonのモジュールと連携できる
こちらに当てはまれば「OpenPyXL」を利用可能であり自動化が行えます。
以上がExcel+Pythonを実現する「OpenPyXL」についてです。やはり、Excel単体を利用するよりもExcel+Pythonの「OpenPyXL」の方が、複数のメリットがあることがみて取れるでしょう。
これを踏まえて以下からExcel+Pythonの「OpenPyXL」で自動化をするための準備についてお伝えしていきます。
Excel+Python自動化をするための準備
Excel+Pythonの「OpenPyXL」で自動化をしていくには、以下の手順で準備して行く必要があります。
1. Pythonをインストールする
まず、Pythonをインストールしましょう。
2. OpenPyXLをインストールする
次に、OpenPyXLをインストールしましょう。
そして、コマンドプロントが立ち上がれば以下のように入力してください。
pip install openpyxl
これによってOpenPyXLがインストールされます。
なお、他のOSでは入力のコマンドが多少違いますがおおよそは同じ。ここまでできればExcel+Pythonの「OpenPyXL」を利用できる環境は整っています。
3. Excelファイルを用意する
あとはExcelファイルを用意しましょう。
これらがExcel+Pythonの「OpenPyXL」で自動化をしていく準備の手順になります。
簡単なのでみなさんもやってみてください。それでは、次の章から実際にOpenPyXLでExcelファイルを操作してみましょう。
OpenPyXLでExcelファイルを操作しよう
基本的にOpenPyXLはPythonで動いているので、できればPythonがどのような言語であるのかを知っておくとわかりやすいです。ただし、コマンド自体はそれほど難しくはないので、以下で紹介するように打ち込んでいけば操作はできます。
ちなみに以下の内容を踏まえておくと説明がわかりやすくなるでしょう。
- Excelファイルを「ワークブック」と呼ぶ
- データ入力などを行う場所を「ワークシート」と呼ぶ
- 入力を行うマスを「セル」と呼ぶ
- 横を「行」、縦を「列」と呼ぶ
python
それでは、Excelファイル名は「sample.xlsx」として説明をおこなっていきます。以下の操作を行っていきましょう。
1. Excelファイルを読み込む
まず、Excelファイルの読み込みはpythonを対話モードにして、以下のコマンドを入力することでできます。
import openpyxl wb = openpyxl.load_workbook('c:\work\sample.xlsx')
こちらはもっとも基本的なコマンドであるので、用意されたExcelファイルを読み込む際はこちらのように記述してください。
2. Excelファイルの作成、保存
次に、Excelファイルの作成、保存を行ってみましょう。
こちらは上のようにpythonを対話モードにしてExcelファイルの読み込みを行い、以下のようにコマンドします。
import openpyxl wb = openpyxl.load_workbook('c:\work\sample.xlsx') wb.save('c:\work\sample.xlsx') wb.close()
さらに、これ以上の操作を行う場合には「wb.save(‘c:\work\sample.xlsx’)」の前で適切なコマンドを入力を行い、ワークブックの操作を行うのが通例です。
操作を行ったExcelファイルを実行する場合には以下のように記入してください。
python ファイル名.py
以上が簡単なOpenPyXLでのExcelファイルを操作です。
基本的にはpythonを対話モードにして、上のコマンドを正しく入力すれば操作が可能。これらの内容を踏まえて以下ではOpenPyXLで「シート」「セル」を操作していきましょう。
OpenPyXLで「シート」「セル」を操作しよう
ここでは、以下の簡単な「シート」と「セル」の操作を行っていきます。もちろん、ここでも上と同様にpythonを対話モードなどにしてから実行してください。
1. シートの選択
まず、1のシートの選択は以下の2つの方法で操作できます。
ws = wb.active
ws = wb["sample"]
2. シートの名前を変更する
次に、シートの名前を変更する操作は以下で行えます。
import openpyxl wb = openpyxl.load_workbook('c:\work\sample.xlsx') ws = wb["Sheet"] ws.title = "new Sheet" wb.save('c:\work\sample.xlsx') wb.close()
3. セルの操作
また、セルの操作は以下のコマンドで行うことが可能です。
import openpyxl wb = openpyxl.load_workbook('c:\work\sample.xlsx') ws = wb.active ws['A1'] = 100 ws['B1'] ='こんにちは' wb.save('c:\work\sample.xlsx') wb.close()
こちらはセルの名前から入力を操作していく方法です。
4. 行と列を指定して行うセルの操作(R1C1形式)
一方で、行と列から入力する方法もあります。こちらでは以下のように入力。
import openpyxl wb = openpyxl.load_workbook('c:\work\sample.xlsx') ws = wb.active ws.cell(row=1, column=1, value=100) ws.cell(row=1, column=2, value='こんにちは') wb.save('c:\work\sample.xlsx') wb.close()
このように入力する方法をR1C1形式と呼びます。こちらもやってみましょう。
以上が簡単なシートとセルの操作です。ここまで説明を聞いていれば、何となくどのようにコマンドを入力していけば良いのかがわかるでしょう。
この他にもOpenPyXLではさまざまなことができるので、それらを組み合わせていけば自動化ができます。ぜひ、そのようなことが行えるように初歩から学んでみましょう。
Excel+Python自動化で気をつけること
上ではExcel+PythonのOpenPyXLでExcelファイルを操作する方法を説明してきました。こちらを学んでいけば自動化を行うことができますが、その際には以下のような気を付けるべき点があります。
ですので、利用してよいのかを社内の担当に確認してみましょう。
次に、Excel+PythonのOpenPyXLでは自動化の際に問題が起こる可能性があります。
以上の点を留意しつつ、Excel+PythonのOpenPyXLで自動化を行ってみてください。
最後に、Excel+Pythonの自動化を考えている人にお伝えしたいことを紹介してきます。
これまで以下の点を説明してきました。
- Excel+PythonではExcelで行っている作業をPythonで自動化できる
- Excel+PythonのOpenPyXLはPythonのモジュールである
- PythonとOpenPyXLを利用可能な状態にするのが主な準備である
- Excelファイルを読み込みは「wb = openpyxl.load_workbook(‘ファイルの保存場所’)」でできる
- シートの選択は「ws = wb[“シート名”]」、セルの操作は「ws[‘セルの場所’] = 数値など」というように操作可能
- 自動化の際に問題が起こる場合があるので注意する
これに加えてお伝えしたいのが、他にもExcel+Pythonで自動化できる以下のようなものがあるということ。
- pywin32
- xlwings
これらのモジュールも有用なので、よろしければOpenPyXLと共に検討してみてください。そうすればみなさんのとって最も適した、Excel+Pythonのモジュールで自動化を行い、業務の効率を計れるでしょう。
今回はExcel+Pythonで業務を自動化するテクニックをお伝えしましたが、さらにシステムとして自動化を行いたい場合はプログラムの開発が必要でしょう。当AIZINEを運営する株式会社お多福labは、システム開発やデータ分析などで企業のDXをサポートしています。興味がございましたら是非お問い合わせください。
【お知らせ】
当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。
御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。