Pythonによる自動化プログラムの事例

Pythonプログラミングの醍醐味の一つが、ライブラリを活用して退屈で面倒な仕事を自動化することです。Pythonのライブラリには、「標準ライブラリ」と「外部ライブラリ」の2つの種類がありますが、どちらも仕事の自動化に活用できます。

標準ライブラリは、ファイル管理、テキスト・CSVファイルの読み書きなど、基本的な処理に用います。Pythonと一緒にインストールされるので、すぐに利用できます。

外部ライブラリは、エクセルなどのファイルの操作からAIの機械学習まで、多種多彩なプログラムに活用できます。現在20万近く公開されている中から無料でインストールできます。

今回は、これらのライブラリを活用してどのように自動化できるかを事例を用いて説明します。どれも20行前後の短いコードでプログラミングしています。これがPythonのメリットでもあります。

もう一つのメリットはソフトを起動する必要がないことです。例えば、エクセルファイルから必要なデータを抽出する場合でも、ファイルを直接読み取るのでエクセルを起動する必要はありません

Pythonならば、プログラムをダブルクリック等で実行するだけです。作業は一瞬で完了します。Excel VBAの場合は、エクセルを起動して操作する必要があります。この差は大きいです。

初心者の方でも、Pythonプログラミングを体験できるようにやさしく説明していますので、ぜひ実際にコードを動かしてみてPythonの醍醐味を実感してください。

仕事自動化の事例

Pythonのコードの試し方

以下の事例にはすべてソースコードを掲載しています(サンプルファイルのダウンロードもできます)。Pythonをインストールすれば実際動かすことができますので、ぜひ試してみてください。Pythonのインストールは以下のページを参考にしてください。

最新版のPythonインストールとIDLE起動の方法

コードの入力にはIDLEというPython付属のソフトを利用できます。Pythonをインストールすればすぐに使えて便利です。操作方法も簡単ですので、以下のページを参考にしてください。

PythonのIDLEの使い方の基本

複数の空フォルダを自動作成する

新規フォルダを作成する作業は、以外に時間がかかるものです。ショートカット(Ctrl+Shift+N)を活用しても数が多くなるとかなりの手間です。

Pythonならば、標準ライブラリ だけの10行に満たない簡単なコードで自動化できます。100個のフォルダでも一瞬で作成できます。

以下のページでは、店舗名の空フォルダをCSVファイルの一覧から自動作成するプログラムを紹介しています。

create folders

今回は複数の空フォルダを自動生成するプログラムをPythonでつくります。これで支店や部署ごとに空フォルダを毎回作成する作業を自動化できます。 手作業では、「右クリック ▶ 新規作…

フォルダ内のファイル一覧を取得する

フォルダ内のファイル一覧を記録しておきたいことは、比較的よくあります。通常はフリーのソフトなどを利用することが多いと思いますが、Pythonで簡単にプログラミングできます。

以下のページでは、フォルダ内のファイル一覧をファイル更新日時などと一緒にCSVファイルに保存するプログラムを紹介しています。

no image
日常業務でフォルダやファイルの整理は、時間を浪費してしまう作業の一つです。そこで、今回はPythonを使ったファイル管理の基本として、カレントフォルダ内のファイル一覧をCSVファイルに出力するプログラ…

エクセルの会員名簿をフィルタリングする

エクセルの名簿から条件に合うメンバーを抽出するには、通常エクセルのフィルター機能を用いますが、実際に自分でエクセルを操作して絞り込む必要があります。実はこれが結構面倒です。

Pythonならばエクセルを起動して操作する必要はありません。OpenPyXL という外部ライブラリを利用して直接エクセルファイルを読み取るので、プログラムを実行するだけです。

以下のページでは、エクセルの会員名簿から有効期限内の会員だけを別のCSVファイルに書き出すプログラムを紹介しています。

no image
今回はエクセルの会員名簿ファイルから、有効期限内の会員だけを抽出して、別のテキストファイルに出力する作業をPythonでプログラミングします。 会員制のサービス運営において、ある条件の会員だけを…

エクセルの勤怠表の月、日、曜日を自動入力する

外部ライブラリのOpenPyXLを活用すれば、エクセルファイルに直接データを書き込むことも可能です。読み込みの時と同様に、エクセルを起動する必要はありません。

以下のページでは、20日締めの勤怠表に月、日、曜日を自動入力するプログラムを紹介しています。20日締めの場合、月をまたぐのでエクセルの操作では手間がかかります。

excel input date

no image
今回は「20日締めの勤怠管理表」に日付と曜日の部分を自動入力するプログラムを作成します。給与計算が20日締めの場合、月をまたいでしまうので、手動で入力するのは結構面倒です。 そこで、勤怠管理表の…

パワーポイント資料を画像ファイルから自動作成する

「毎回同じような定例の会議のためのパワポ資料」や「同じスタイルの多量のスライド」は、Pythonで自動作成すると大幅な効率化が期待できます。

python-pptx という外部ライブラリを使えば、パワーポイントファイル(*.pptx)をPythonで作成できます。定例会議の資料などは、数値などを差し替えてプログラムを実行するだけで作成できるようになります。

以下のページでは、python-pptxを活用して、「ファイル名=スライドのタイトル」にした画像ファイルを揃えるだけでプレゼン資料を自動作成するプログラムを紹介しています。

no image
パソコン操作を時短するには、まずは「マウスに触らないこと」です。つまり、キーボードで操作すれば、マウスに持ち替えてクリックしてという時間を省くことができます。 例えば、 コピー、ペースト…

複数のPDFファイルを1つに結合する

通常PDFファイルのページを結合したり分割するには、有料のAcrobat®などのソフトが必要ですが、PythonならPyPDF2 という外部ライブラリを利用してできます。PyPDF2を利用すれば、日常よく行う既存PDFページの結合・回転・コピー・重ね合わせをPythonでプログラミングできます。

以下のページでは、1つのフォルダ内にある複数のPDFファイルを1つのPDFファイルに結合するプログラムを紹介しています。

no image
今回はフォルダ内にある複数のPDFファイルを1つのPDFファイルに結合するプログラムをPythonで作成します。 通常このような作業は、有料のAcrobat®などを用いますが、毎回ソフト…

PDFファイルを新規作成する

ReportLab という外部ライブラリを使えば、PDFページを新規に作成できます。データからPDFファイルを作成できるようになるので、宛名入りの表紙作成などを自動化できます。

ReportLabを用いて日本語のPDFファイルを作成するには少し手間が必要ですが、以下のページで詳しく説明しています。このページを参考にすれば、日本語のPDFファイルの作成をプログラムで自動化できます。

no image
今回はPythonで日本語フォントをPDFに出力します。ライブラリにはReportLabを利用します。 前回のC#の場合と同じく、真ん中に「こんにちは、世界!」と出力します。ReportLabは…

PDFファイルにページ番号を追加する

上記のPyPDF2とReportLabを組み合わせれば、既存のPDFにページ番号を追加することも簡単にできます。

no image
今回は、既存のPDF文書にページ番号を追加するプログラムをPythonで作成します。 プログラムのポイントは、既存のPDFにページ番号を直接追加することは難しいので、まずページ番号だけのPDFを…

ヒストグラムの作成

グラフの作成には、普段エクセルをよく利用しますが、問題は時間がかかるということです。軸やシンボルなど細かい設定までこだわると、ついつい時間をかけすぎてしまいます。

Pythonでプログラミングしておけば、データを差し替えて何回でも同じスタイルのグラフを作成できます。スタイルを変更したい場合は、コードの一部を書き換えるだけです。

Pythonでは、Matplotlib という非常に高機能なグラフ作成ライブラリを利用できます。多様な種類のグラフ作成ができるだけでなく、各種形式の画像ファイルに出力できるので、まとめて多量のグラフを作成することも可能です。

以下のページでは、エクセルで作成すると非常に面倒なヒストグラムをPythonで作成するプログラムを紹介しています。Matplotlibのインストールから丁寧に説明していますので、ぜひ違いを確かめてみてください。

データ分析で最初に行うことは、項目(変数)ごとに平均、標準偏差、ヒストグラムを知ることです。なかでも、ヒストグラムは「値の分布傾向」を視覚的に把握できるので重宝します。 例えば、今まで左右対称な…

ブラウザを自動操作する

システムには、ブラウザで入力しないと外部からデータを登録できないものがあります。本来はWeb APIが公開されていれば容易に自動化できますが、運用や管理の問題で公開できない場合です。

そんな場合でも、Selenium という外部ライブラリを活用して、ブラウザを自動操作すれば自動化できます。Seleniumは、Python以外にもJavaやC#でも利用されているスタンダードなツールです。

ブラウザを自動操作するには、他にブラウザ専用のドライバが必要です。PythonのSeleniumライブラリは、このドライバを介してブラウザを操作します。以下のページでは、ドライバの入手方法から詳しく説明していますので、ぜひ試してみてしてください。

no image
PythonとSelenium WebDriverを使ってChromeを自動操作する方法をわかりやすく説明します。Pythonで出来ることは実に多様ですが、なかでもスクレイピングや今回のブラウザ操作は…

相手によって違う添付ファイルをメールで送る

請求書のPDFのように相手によって違う添付ファイルを、Outlookで1つひとつ送信するのはかなり面倒です。手作業ではミスも起こりやすくなります。

そんなときは、Pythonで自動化すれば省力化できるしミスも防げます。以下の書籍では、Pythonを用いたメール送信の基本から丁寧に説明しています。ぜひ参考にしてください。

no image
本書「PythonでExcel、メール、Webを自動化する本(発売日:2020年09月19日)」は、プログラミング未経験のビジネスパーソンが仕事でPythonを使えるようになることを目指した本です。そ…

最後に

Pythonで仕事を自動化することが注目されるはじめたのには、書籍「退屈なことはPythonにやらせよう」が大きな契機になっています。この書籍には、本記事で紹介していないスクレイピング、メール、画像から、RPAのようなGUIオートメーションまで幅広い活用例が紹介されています。実際に自動化するプログラムを作成する時には、この書籍がとても参考になります。

no image
本書「退屈なことはPythonにやらせよう」を読み始めてすぐに「この内容を日本のビジネスパーソンが身に付ければ働き方は変わる」と強く思いました。 原書の「AUTOMATE THE BORING …