Pythonでのエクセル操作とは?できることや自動化、導入方法を紹介
thumb_pythonexcel_01
Pythonでのエクセル操作とは?できることや自動化、導入方法を紹介
アンドエンジニア編集部
2024.02.22
この記事でわかること
Pythonの充実したライブラリの中にはエクセル系のパッケージがあり、エクセル業務の効率化に活かせる
Pythonによるエクセル関連業務の効率化は、従来のVBAからPythonへの移行がおすすめ
Pythonのエクセル操作や自動化を学ぶには、サンプルの豊富な解説本があり、実践を通じて本で体系的に学ぶのがおすすめ

Pythonでエクセルの自動化ができる?

img_pythonexcel_01

機械学習やAI関連で注目を浴びるプログラミング言語のPythonですが、その豊富なライブラリにはエクセル自動化のライブラリがあります。

今やエクセルは事務作業を行う上では必須のツールです。プログラミング言語が普及するまで、会議資料の作成、データの集計や分析に加え、従来はエクセルマクロやVBAを利用して、業務の効率化を図るのが一般的でした。

その流れは変わらず、さまざまなシステムの開発と、システム化による業務の効率化と並行してエクセル文化が定着し、アプリケーションとエクセルが共存しているのが現状です。そんな中、Pythonを利用したエクセルの自動化が注目されています。

ここでは、Pythonでできることとして、エクセルの自動化について紹介します。

Pythonでできることは?初心者が作れるものや実用例を紹介
Pythonで自動化できること7選!面倒な作業を効率化してより便利に

エクセル操作の効率化

企業がエクセルを導入した当時、エクセルは一部の人のツールでした。あくまでも表計算がメインで、経営計画や会議のための資料作成に使われていましたが、エクセルの便利さが伝わると、経理部門や人事部門もこぞってエクセルを使うようになりました。

請求書の発行・売掛金の管理・人事情報の管理など、さまざまな局面でエクセルが使われ、続いてエクセルのマクロ機能やVBAを用いて、エクセル操作の自動化も進みました。しかし、VBAにもできることに限界があります。

他システムとの連携・データベース操作・Webアプリとの連動など、VBAだけでは難しいことが数多く出現しましたが、定着したエクセル文化を捨てることもできません。そうした限界を乗り越え、更なる業務の効率化を図る方法の1つとしてPython×Excelが注目をされているのです。

VBAとは

エクセルは分かるけれど、VBAは触ったことがないという方も多いでしょう。VBAとは(Visual Basic for Applications)の略称で、Microsoft Officeのアプリ拡張機能です。

VBAはプログラム言語の1つですが、VBAを利用してエクセルのみならず、Word・Access・PowerPointなどのOffice製品でも利用できるのが特徴です。

エクセルなどにはマクロ機能があり、マクロに操作を記録すると同じ操作を実行させることができますが、このマクロはVBAプログラムに変換され、マクロの裏ではVBAが動いているのです。

企業では、各部門の予算入力・集計・売上入力・集計・レポート作成などをエクセルとVBAを利用して実現している例が数多くあり、エクセルとVBAは切っても切れない関係になっています。

Python×エクセルによる最速仕事術

Pythonを使うと、VBAと同様にエクセル関係の仕事を効率化することが可能です。

効率化できる作業や操作は多岐にわたりますが、分かりやすいところでは以下のような作業を自動化できます。

【Pythonをエクセルと連携させてできること】

  • 外部データのエクセルへの読み込み
  • 読み込んだデータの集計や加工
  • 処理した結果をデータベースなどへの書き込み
  • 処理結果をグラフ化
  • Pythonでエクセルの(VBA)マクロの実行
  • エクセルのアウトプットの印刷設定

 

つまり、VBAで行えることはほぼ全てPythonで行えます。VBAでは難しいこともPythonでは容易に実現できます。また、これらのことはPythonでゼロからプログラミングする必要はありません。Pythonにはエクセル向けのライブラリが揃っているため、それらを利用すれば比較的簡単にエクセル操作・自動化が実現できます。

これらによって、眼に見えて仕事の効率化が図れるでしょう。これまで、エクセルに長けた人しかできなかった業務が誰でもできるようになります。まさに、Python×Excelは最速の仕事術となるのです。

Pythonでできることは?仕事で活かせる職種や将来性を解説

Pythonによるエクセル操作のメリット

img_pythonexcel_02

Pythonでエクセルの操作や、エクセル作業の自動化ができることは分かりました。では、Pythonによるエクセル操作はどのようなメリットがあるのか見ていきましょう。

Pythonの用途とは?できること・実用例・学習方法を紹介!

プラットフォームの制約が少ない

大きな企業では事務系はWindows、デザイナー系やDTM系ではMacというところも少なくありません。MacにもMac版のMicrosoft Officeがあるため、共通ソフトとしてエクセルを使う分には特に問題はありませんが、エクセル VBAに関しては非共通部分もあり、両方を同時にコントロールするのは無理があります。

Pythonであれば、Windows版とMac版に大きな違いはなく、簡単な修正だけですぐに同時に使えます。そのため、同一企業内でWindowsとMacが混在しているところでは、VBAよりはPythonを利用した方が管理しやすいでしょう。

Python入門:MacOSの開発準備から環境構築まで解説!

Pythonは効率化できる幅が広い

PythonはVBAと比較して汎用性が高く、さまざまな連携が可能です。例えば、Googleスプレッドシートのデータとエクセルを連携させたり、Webからスクレイピング(収集)したデータをエクセルに書き出したりすることが可能です。このように、エクセル以外のアプリやデータベースとの連携が容易に行える点はメリットです。

使える関数が豊富

Pythonは元々科学技術計算に用いられるほど、計算は得意分野です。またエクセル関数が使えるライブラリもあり、両者の良いとこ取りをし、相互に補完することで相乗効果を得られます。

Pythonの関数:基本的な使い方と組み込み関数を解説!

将来性がある

Pythonはエクセル操作が可能なだけではなく、Webアプリの開発・機械学習・AI開発・ゲーム開発などあらゆる分野で利用されています。

将来性という観点でも、プログラミングの学習においてPythonはおすすめの言語です。その際、VBAからPythonへの移行案件をこなすには、VBAの解読ができた方が効率的に対応できるため、PythonとVBAの両方を学んでおいて損はありません。

Pythonによるエクセル操作のデメリット

img_pythonexcel_03

ここまで、Pythonにおけるエクセル操作のメリットを紹介しました。ここでは、デメリットとなるポイントについて解説します。

Pythonのインストールが必要

PythonはMicroSoft Officeのように、最初から業務用PCにはインストールされていません。しかも、企業であればインストールするためには、システム部門の承諾が必要でしょう。この壁が大きなネックです。

非定型業務、非日常業務には向かない

エクセルでも自動化が容易な反復作業や定型業務は、Pythonで対応が可能です。しかし、非定型業務は対応できません。また、年に1度程度の非日常業務も、費用対効果の観点から考えると、わざわざPythonで自動化する必要性は低いでしょう。

とはいえ、非日常業務や非定型業務などを放置すると、そこが業務効率化の足かせになる可能性があります。

非日常業務や非定型業務の棚卸を行い、自動化するのか・廃止するのかについて判断する必要があります。また、非日常業務や非定型業務でも重要かつ必要な業務であれば、AI技術によって対応することが可能であり、それも選択肢となります。

このように自動化においては、業務を1つずつ、丁寧に見直しをしていくことが求められます。

エクセル操作系のPythonライブラリ

img_pythonexcel_04

Pythonの標準ライブラリには、素晴らしいパッケージやモジュールが豊富にあります。その中にはエクセル操作に関するライブラリがありますので、利用しない手はありません。エクセル系には次のようなライブラリがあります。

OpenPyXL

「OpenPyXL」は、主にエクセル(拡張子が.xlsxのファイル)の読み書きを行うパッケージです。

例えば、以下のようなことができます。

  • エクセル上のセルの値をPythonで読んだり、書いたりする
  • 異なるエクセルのファイル間で、エクセル内部のデータを交換する
  • グラフを自動作成する

xlwings

Pythonでよく利用されるエクセル系ライブラリとしては、「xlwings」があります。Pythonから直接エクセルを呼び出すことができます。また、反対にエクセルからPythonを呼び出すことも可能です。

他にも以下のような特徴があり、VBAユーザには馴染みやすいパッケージであることが分かります。

  • VBAに書き方が似ている
  • 既存のエクセルマクロを使える


Pythonのよく使うライブラリ一覧!一段上の開発を目指そう
pipとは?Pythonのライブラリ管理方法を分かりやすく解説!

2023年8月公表の「Python in Excel」とは

img_pythonexcel_05

前述したライブラリの他にも、2023年8月にパブリックプレビュー版が公表された「Python in Excel」でもPythonにおけるエクセルの操作が可能です。ここでは、Python in Excelについて概要や導入方法を紹介します。

Python in Excelの概要

Python in Excelでは、エクセル単一シート上でエクセルとPythonをシームレスに組み合わせることが可能になるため、これまでエクセルが苦手としていた高度なデータ処理や分析、可視化もPythonと組み合わせて効率的に行うことができます。Pythonの持つ機械学習や予測分析をエクセルでも活用できます。

Python in Excelを利用するには、「Microsoft 365 Insider Program」に参加してベータチャネルのInsiderレベルを選択します。なお、Python in ExcelはWindowsのみに対応しており、MacやWeb、iPhone、iPad、Androidでは使用できません。

また、Python in Excelは現在パブリックプレビュー版が公開されているため(2024年1月時点)、フィードバックに基づいて変更される場合があるようです。詳細はMicrosoftの公式サイトをチェックしましょう。

【参考】:Excel のオープンソース ライブラリと Python - Microsoft サポート

【excelでpythonが使える】Python in Excelの使い方や活用例を解説!

Python in Excelの導入方法

Python in Excelを利用するには、まずは「Python in Excel」のInsiderビルドをインストールしてセットアップを完了させます。

ExcelでPythonを使うには、Excelのセルに”=PY”と入力すると、関数オートコンプリート メニューから「PY」を選択できます。もしくは、関数に”=PY()”とカッコを追加することで直接記述も可能です。セルでPythonが有効になると、そのセルに緑の「PY」アイコンが表示されてPythonが入力できることが確認できます。

また、Python in Excelのインストールが完了すると、Anacondaによって提供される標準のPythonライブラリセットが搭載されます。コアライブラリは、matplotlib、numpy、pandas、seaborn、statsmodelsです。

Anaconda(アナコンダ)とは?Pythonの効果的な開発環境を解説!
Matplotlibでグラフ描画が簡単に?pipのインストール手順を解説!
NumPyとは?効率的なPythonのデータ分析手法を解説!

Python×エクセルのおすすめ本

img_pythonexcel_06

Pythonとエクセルをうまく使うと、エクセルに関わる業務を大きく改善できそうなことが分かりました。では、「Python×エクセル」に関して、どう学ぶべきか気になるところでしょう。

ネット上には、「Python×エクセル」に関する情報が豊富にありますが、体系的に学びたいなら、入門書で学ぶのが間違いないでしょう。ここでは「Python×エクセル」に関するおすすめの入門書を2冊紹介します。

めんどうな作業が秒速で終わる!Excel×Python自動化の超基本

本書は、Pythonのことはよく分からないけど、エクセルの自動化をしたい・実践を通じてPythonを学んでみたい人におすすめです。

Pythonによるエクセルの操作、自動化と聞くと、Pythonに関するプログラミングのスキルが必要だと思いがちですが、この本は「超基本サンプル」を中心に例が多く載せられています。

Pythonを知らなくとも簡単に学べ、「超基本サンプル」のコードをそのまま打ち込み、指示通りにいくつかの操作をすればエクセルの自動化ができます。

▪著者:伊沢 剛 ▪ページ数:224ページ ▪出版社:宝島社 ▪発売日:2020/08/19

【参考】:めんどうな作業が秒速で終わる!Excel×Python自動化の超基本

Python×Excelで作る かんたん自動化ツール

本書は、Pythonの基礎知識をはじめ、エクセルと組み合わせて仕事で使える自動化ツールを作成する方法を学べます。

本書を読み解いていくことで、Excelを使った入力・設定方法や、Pythonがインストールされていない環境でのプログラム実行方法、エラーメッセージの書き方などが理解できるようになります。

▪著者:リブロワークス ▪ページ数:216ページ ▪出版社:日経BP ▪発売日:2022/06/27

【参考】:Python×Excelで作る かんたん自動化ツール

Python学習ならこの本がおすすめ!厳選22冊をレベル別に紹介

Python×エクセルの将来性

img_pythonexcel_07

エクセルを活かしながらさらに業務の効率化を図る手段として、Pythonによるエクセル操作・エクセル自動化があります。

既存のエクセルで作成された資料などをPythonを用いて、データベースに移行するといった作業も必要でしょう。エクセルマクロやVBAに頼っていた業務も、Pythonに移行することで更なる効率化が期待できます。こうした地道な対応もDX実現には必要不可欠です。

Pythonエンジニアを目指す皆さんは、Pythonによるエクセル操作、自動化を学び、Pythonエンジニアとしてスキルアップを図ってみませんか。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT