Python学院
メールマガジンバックナンバー

vol.12

  • コツ・知識
  • メールマガジン

PythonでExcel操作を自動化するコツ

今回のメルマガのテーマは
PythonでExcel操作を自動化するコツ」でございます。


あらゆる組織で活用されているExcelですが、その多くは定型・単純作業で
あることが多いです。

Pythonを用いることで、このExcel操作を完全に自動化することができます。

PythonでExcel操作を行うためには、「openpyxl」と呼ばれるツールを使います。

PythonによるExcel自動操作の方法は非常にシンプルですが、業務で
活用するためにはいくつか押さえておくべき「コツ」が存在します。

当メルマガを通して、PythonによるExcel自動操作の「コツ」を押さえ、
是非Excel操作の自動化に取り組んでいただければと思います。

またExcel操作の自動化を実現するために、よく使われるツールの一つに
「マクロ(VBA)」が存在します。
他にも便利なツールがある中で、「PythonでExcel自動操作を行うメリット」に
ついてもご紹介をしていきます!


弊社では、「PythonによるExcel操作」についてお教えする研修が3つございます!
「Pythonを使えるようになって、Excel周りの業務を効率化したい」とお考えの方は、ぜひ一度カリキュラムをご確認ください。

・Python学院~Excel操作自動化編(1日間) ※「Python基本文法」と「Excel操作」について学べる!
・Python学院~Excelのデータ転記からプログラミングを始める(2日間) ※「Python基本文法」と「Excel操作」について学べる!
・Python学院~短期集中講座(5日間) ※「Python基本文法」と「Excel操作」「スクレイピング」について学べる!

(約5分で読めます)

~~~~~~~~~目次~~~~~~~~~
1. Excel操作を自動化するメリット
2. PythonでExcel操作を自動化するために
3. PythonでExcel操作自動化を行うコツ
4. マクロ(VBA)ではなく、PythonでExcel操作の自動化をするメリット
~~~~~~~~~~~~~~~~~~~~




1. Excel操作を自動化するメリット


多くの組織で、Excelを用いた定型・単純作業は数多く存在します。

Excel操作の自動化ができるようになると、
主に以下のようなメリットがあります。

●作業時間の短縮
●人件費の削減
●ヒューマンエラーの削減


これはExcel操作の自動化に限らず、業務自動化を実現した際に
得られる主なメリットです。

組織として、また個人として成果を出すために、深い「思考」が必要な
より注力すべき業務に時間を使うことができるようになります。


2.PythonでExcel操作を自動化するために


Pythonでは、ライブラリの「openpyxl」を使うことで、
非常に手軽にExcel操作の自動化を実現することができます。

「ライブラリ」とは、目的ごとに便利な機能がまとめられたものです。

あまり難しく考える必要はありません。
ライブラリを使うことで、非常に手軽に高度で複雑な機能を
実現することができます。


openpyxlではワークシートやセルの操作、グラフ作成など、
Excelファイルを開いて行うあらゆる操作について自動化が可能です。

Excel操作の自動化を行うにあたり「マクロ(VBA)」がよく候補に挙がりますが、
マクロ(VBA)でできることは、Pythonでも同じようにできます。

普段Excelで何か作業を行う際に、「セルの操作」を行うことが
最も多いかと思います。
セルに記入されている値の「取得」、セルに値を「書き込む」といった作業です。

この「セルへのデータの読み書き」について、Pythonでは以下のようにコードを
記述することで実現できます。



ここでは詳しくは説明しませんが、各行ごとに以下のようなことが
行われています。

--------------------------------------------------------------
●#1
「openpyxl」をプログラム内で使えるように、読み込み(インポート)

●#2~#3
読み込むファイル名、操作対象のシート名を用意

●#4~#5
指定のExcelファイルを読み込み、また操作対象のシートを取得

●#6
読み込んだExcelファイルの「A1」セルの値を「取得」

●#7
「#6」で取得した値を、「A2」セルに「書き込み」

●#8
ファイルの保存
--------------------------------------------------------------

コードについて詳しく理解をする必要はありませんが、これで
「PythonによるExcel操作自動化のプログラムのイメージ」を掴むことが
できたのではないでしょうか。

このように非常に短いコードで、簡単にセルの操作を行うことが可能です。


3.PythonでExcel操作自動化を行うコツ


PythonでExcel操作の自動化を行うには、押さえておくべき「コツ」が
存在します。

この「コツ」を押さえておけば、業務で活かせる実用的なPythonの
プログラムを非常に効率良く作成することができます。


(1)Excelのデータ構造

PythonでExcel操作を行うにあたり、この「Excelのデータ構造」を
しっかりと理解しておく必要があります。

Excelのファイルは、以下のような構造で成り立っています。



あるセルに対して操作を行いたい場合、まずは「どのワークブック(ファイル)に
対して操作を行うか
」を指定する必要があります。

操作対象のワークブックを指定できたら、次に「ワークブック内の、
どのワークシートに対して処理を行うか
」を指定する必要があります。

操作対象のワークシートを指定できたら、「どのセルに対して操作を行うか
を指定し、操作対象のセルに対して「値の取得」や「「値の書き込み」といった
操作を行っていきます。

このように、Excelには「ワークブック(ファイル)>ワークシート>セル」
といった階層構造が存在します。
セルに対して操作を行いたいときは、「どのワークブックの、どのワークシートの、
どのセルに対して処理を行えば良いか
」を意識することが重要です。


(2)ひな型ファイルの活用

openpyxlでExcelを用いた業務の自動化を行う際、多くの場面で「データ転記」を
行うことになります。

「データ転記」の中でも、「あるExcelファイルに記入されたデータを、
別のExcelファイルに転記する」という操作を行うことが多いです。

例えば、顧客リストで管理されている顧客ごとに請求書を作成するといったことを
行いたい場合に、「ひな型ファイル」と呼ばれるものを活用します。

「ひな型ファイル」というのは、作成したいファイルに共通する部分を
まとめたものです。
ひな型ファイルをあらかじめ用意しておくことで、後からデータを流し込み、
綺麗な形でファイルの作成を行うことができます。



 ビジネスの現場で作成する多くの書類は、あらかじめフォーマットが
決まっているものが多いです。
ひな型ファイルを使うことで、非常に効率良く書類を自動作成することができます。


(3)現場でよく活用されるExcelの自動操作について

Excelファイルを自動操作する場合、複数ファイルに対して処理を行うことが
多くあります。

複数ファイルに対しての処理には、大きく以下2つの方向性があります。

●1→多
1つのファイルにまとめられている情報を元に、複数のファイルを作成します。

例えば、顧客リストで管理されている顧客ごとに請求書を作成するといった
場面で、この「1→多」の処理が行われます。

●多→1
先程の「1→多」とは、方向性が逆です。

複数のファイルに散らばった情報を、一つのファイルに集約します。

例えば、各営業拠点から提出を受けた売上管理ファイルを、全社集計用に
一つのファイルに集約するといった場面で、この「多→1」の処理が行われます。


この「1→多」と「多→1」の方向性について理解ができていれば、非常に効率良く
プログラムを作成することができます。


4.マクロ(VBA)ではなく、PythonでExcel操作の自動化をするメリット


Excel操作の自動化について検討をする際、よく「マクロ(VBA)」が候補として
挙がります。

マクロ(VBA)はExcel操作の自動化に特化したツールであり、Excel操作の自動化
において最もよく使われているツールです。

確かに、Excel操作の自動化「だけ」を実現したいのであれば、
マクロ(VBA)で十分です。
Pythonよりも、マクロ(VBA)のほうが手軽に始められます。
PCにExcelさえ入っていればすぐに使うことができるため、Pythonのように
「環境構築」の作業を行う必要がございません。

非常に便利なマクロ(VBA)ですが、応用範囲が広いわけではありません。
あくまで「Excel」の自動操作で使うものです。

組織内で発生する定型・単純作業は、もちろんExcel操作だけではありません。

例えば他のOfficeソフト(Word、PowerPoint等)の操作の自動化、またWeb上からの
情報収集の自動化やブラウザの自動操作、データ分析やAI開発、アプリ開発など
様々なことが実現可能です。

組織の業務自動化を実現するために「とりあえず、環境構築が不要ですぐに扱える
マクロ(VBA)を導入しよう!」と考えると、「業務の自動化=Excel操作の自動化」
となってしまい、「組織内のあらゆる業務の自動化」を実現することは
難しい場合があります。

Pythonは非常に応用範囲が広いため、「もしかしたら、この業務も
自動化できるかも」という「自動化の案」がいたるところで出てくるようになり、
組織に「業務効率化」「改善」の風土を強く根付かせることができます。



5.最後に


以上、Excel操作の自動化を実現するための方法・コツ、またマクロ(VBA)ではなく
Pythonで自動化を行うメリットなどについてご説明をいたしました。

Pythonを使いこなせる人が組織内に増えれば、組織の業務効率化・改善に対する
意識」が変わります。

組織の「意識」が変わることで、実際に自動化を実現してみようと「実践」が
生まれます。

「実践」を行っていく中で、組織内であらゆる業務を自動化するための「仕組み」が
構築されるようになり、その仕組みの下で「実践し続けられる」ようになります。

当メルマガの読者の中で「組織へのPythonの導入・活用」を考えている方が
いらっしゃいましたら、まずはPythonを用いた簡単なExcel操作の自動化を行い、
Pythonの有用性を、組織内に示す」ということに取り組み、
組織の「意識を変える」ことに取り組んでいただければと思います。

当メルマガではExcel操作の自動化についてご説明しましたが、また別の
機会に他の様々な便利技術についてもご説明をいたします。

Excel操作の自動化はもちろん、組織のあらゆる業務の自動化を実現したいと
お考えであれば、是非本格的にPython学習に取り組んでいただければと思います。

関連研修