Python
2023.02.09(更新)
【やらなきゃ損!】2日でできるPythonのExcelコピペ自動化!

Excelのコピペ作業が大変(涙)。効率よくできる方法ないかなぁ…。
こんなお悩みに答えていきます。
本記事の内容
- Pythonを使ったExcel作業の自動化
本記事を対象とする方
- 普段からExcel業務を大量にこなす方
- Excel業務を効率よくこなしたい方
- プログラミングに興味がある方
- 数字に強い方
この記事を書いている僕はプログラミング歴1年3ヶ月です。webエンジニアとして”社内転職”に成功しました。
PythonでExcel業務をこなすメリットと実践方法
Pythonを使うメリットは?実践方法は?これらを説明していきます。
メリット
- 自動化で時間を浮かすことができる
- コピペミスがなくなる
今まで手動で行ってきたことをプログラムで自動化すると、一瞬で作業が終わります。自分がやっていた作業をプログラムが代わりにやってくれるので、時間が浮きます。特に作業量が多ければ多いほどその恩恵が得られます。
それに加えて、手動によるコピペミスがなくなります。ミスを発見してその修正をするといった作業からも解放されます。
正直、デメリットは何一つありません。
実践方法
たった2日でできる実践方法を説明します。
-
1日目
書籍、YouTubeなどで基礎学習(ガッツリ知識を習得するというよりは基礎的なことを頭に入れ込む程度でOKです) オススメは下記YouTube動画です。 (所要時間約1時間18分) -
2日目
本記事を見ながら実践(所要時間約30分)
Pythonの使用環境準備/Windowsの場合
それではPythonを使う準備をしましょう。まずはWindows編から。
まず公式サイトにアクセスして、Pythonをダウンロードしてインストールします。


お使いのPCが64bitの場合は64bitをダウンロードしてください。64bitかどうかわからない方は下記記事を参照してください。
インストールが終わったら、Pythonがインストールされたかどうかを確認します。
- Windowsのスタートメニューを表示
- 検索ボックスに「powershell」を入力
- 「Windows PowerShell」をクリック
- 「Python -V」を入力 → Pythonのバージョンが表示されていればインストール成功です
Pythonの使用環境準備/Macの場合(仮想環境の構築)
今度はMacの場合の使用環境準備を紹介します。
Windowsと同じように公式サイトからダウンロード、インストールしても良いのですが、ここでは仮想環境を作って、インストールする方法を紹介します。
仮想環境はPCの中にもう一台別のPCを作ること、とお考えください。物理的にそんなことできませんので、仮想(バーチャル)というわけです。
仮想環境を使う一つのメリットとしては、自分の好きなライブラリをインストールすることができる点です。Pythonには便利なライブラリがたくさんあるのですが、Pythonのバージョンによって、ライブラリを使用した時にエラーが出ます。
このエラーを回避するためにはライブラリに適したバージョンのPythonが必要になるのですが、バージョンを変更すると、今度は別のライブラリには適さなくなり、そちらのライブラリでエラーになってしまう可能性があります。
それを回避するために、何もない空間の中に、ライブラリに適したバージョンのPythonをインストールするというわけです。
仮想環境の作成方法はいくつかありますが、今回はvenvというPython公式ドキュメントで推奨される仮想環境を作っていきます。
その前にPythonでよく目にするワードを紹介します。さらっと頭に入れておいてください。
仮想環境
仮想環境とは、同じパソコン内に別パソコンのようなPython専用の構築された環境のことを言います。論理的に独立した環境で、パッケージによる依存性や互換性に左右されることなく実行可能となります。
モジュール
.pyという拡張子が付いたPythonファイルのことです。関数やクラスが記載されており、実現したい処理が機能するようにまとめられています。
パッケージ
モジュールをいくつかまとめたものをパッケージと呼びます。
ライブラリ
いくつかのパッケージをまとめて、一つのアプリケーションとしてインストールできるようにしたものです。
サードパーティ
オリジナルメーカーが開発したパソコンや周辺装置、ソフトウェアなどを対象として、それに対応する製品やソフトウェアなどを販売・提供するメーカーのことです。製品を開発したメーカーをファーストパーティーと呼びます。
では仮想環境を作っていきましょう。まず、Macのターミナルを開き、下記コードを入れてください。
【ターミナル】
- mkdir sample_venv
- cd sample_venv
- python3 -m venv sample_venv
- source sample_venv/bin/activate
これで仮想環境が作られました。次にpipというツールを使ってライブラリをインストールしていきます。pipとはライブラリを構成するパッケージを管理するためのツールです。先にpipとpythonのバージョンを確認しておきましょう。以下のコードをターミナルに入れてください。
【ターミナル】
- pip -V
- python -V

バージョンが確認できたら下記コードをターミナルに入れます。
【ターミナル】
- pip install openpyxl
このopenpyxlというのがPythonでExcelを使えるようにするライブラリです。
コマンドを実行すると、「新しいバージョンも使えますよ」と教えてくれるアテンションが出ます。せっかくなのでバージョンアップしましょう。

バージョンアップするためのコマンドをターミナルに入力します。
【ターミナル】
- pip install --upgrade pip

「アップグレード成功!」と褒められました。気を取り直してもう一度openpyxlをインストールします。
【ターミナル】
- pip install openpyxl

私の場合はすでにインストールされているのでこの表示になりますが、始めての方はコマンドがしばらく勝手に動くはずです。動きが止まったら下記コマンドを入力してください。インストール済みのライブラリが確認できるコマンドです。
【ターミナル】
- pip freeze
この結果が、openpyxl=3.0.7のような形で表示されればOKです。
これでPythonを使用できる環境になりました。
では実際にVS codeを使って、プログラムを書いていきましょう。VS codeというのはプログラムを書く専用のテキストエディターソフトです。テキストエディターは色々な種類があり、VS code以外でも良いですが、私は利便性の面から愛用していますので、今回はVS codeで解説します。
VS codeのインストール
VS codeをインストールしましょう。下記からダウンロード/インストールしてください。
インストールしたら、WindowsならPowerShell、Macならターミナルで下記2点をインストールします。
【ターミナル】
- pip install autopep8
- pip install flake8
- PEP8 → Pythonのコーディングスタイルに沿ったプログラムを作成するツール
- flake8 → PEP8のチェックツール
次に、Python拡張機能をインストールします。

私はインストール済みなので、アンインストールと表示されていますが、インストールと表示されるはずです。インストールしたらPEP8とflake8の設定を行います。
設定検索部分にpython linting enabledと入力すると、次のようにな項目が出てくるので、①&②にチェックを入れ、③のチェックを外します。これで初期設定は終了です。

Excel作業の概要説明
ここまでの設定をするのに時間がかかったかと思うのですが、ここからが実践です。Excel操作をしていきましょう!まずはこちらをご覧ください。

これは私が本業で使用している見積書のテンプレートファイルです。この中で①品名/②品番/③数量を次のExcelファイルの特定セルにコピペしなければなりません。




実践/コーディング
コピペしなければならないファイルは先に紹介した4つです。これをPythonで一瞬で終わらせます。
まず、仮想環境構築の際に作ったフォルダーにPythonファイルを作ります。私の場合、フォルダーはsample_venvでしたので、ここにsample_venv.pyというファイルを作ります。

そして、下記コードを打ち込みます。
【ターミナル】
- import openpyxl as px
- wb1 = px.load_workbook('/Users/macbookpro23/Desktop/sample_venv/sample_venv_estimate.xlsx)
- wb2 = px.load_workbook('/Users/macbookpro23/Desktop/sample_venv/sample_venv_nouhin.xlsx)
- wb3 = px.load_workbook('/Users/macbookpro23/Desktop/sample_venv/sample_venv_ctm.xlsx)
- wb4 = px.load_workbook('/Users/macbookpro23/Desktop/sample_venv/sample_venv_kyodaku.xlsx)
- ws1 = wb1['Sheet1']
- ws1 = wb2['Sheet1']
- ws1 = wb3['Sheet1']
- ws1 = wb4['Sheet1']
- ws2['B9'] = ws1['B14'].value
- ws2['C9'] = ws1['B15'].value
- ws2['D9'] = ws1['F14'].value
- ws3['D6'] = ws1['B14'].value
- ws3['D7'] = ws1['B15'].value
- ws4['C2'] = ws1['B14'].value
- ws4['C3'] = ws1['B15'].value
- ws4['C4'] = ws1['F14'].value
- wb2.save('/Users/macbookpro23/Desktop/sample_venv/sample_venv_nouhin.xlsx)
- wb2.save('/Users/macbookpro23/Desktop/sample_venv/sample_venv_ctm.xlsx)
- wb2.save('/Users/macbookpro23/Desktop/sample_venv/sample_venv_kyodaku.xlsx)
このコードを打ち込んだ後に、ターミナル(Mac)にpython sample_venv.pyと入れてエンターキーを押すと処理が実行されます。VS codeでターミナルを表示させるには、下段のツールバーをドラッグして、上に動かせば出てきます。


python sample_venv.pyを実行する前に、対象Excelファイルは閉じておいてください。実行が完了したら対象Excelファイルを開きます。
ではファイルを開いてちゃんとコピペできているかどうか確認しましょう!



なんと!!!すごすぎるぜPythonパイセン!
初めて上手く行った時は感動してしばらく動けませんでした(笑)。私はこれにより、月に5~10時間程、時間短縮に成功しています。その時間を利用して色々なことにチャレンジするつもりです。
今回は単純なコピペ作業を紹介しましたが、もちろんもっと複雑な作業が行えるので、日々の業務に役立つこと間違いなしです。
マスターしたら職場でも一目置かれることでしょう。今回紹介した内容は基礎的なことなので、ご自身で勉強を重ねて、色々応用できるように是非チャレンジしてみてください。
ところで、Pythonを使用する時に聞き慣れないワードが出てきたかと思います。冒頭でも記載しましたが、頭から抜けやすいので、頻出するワードをもう一度まとめておきます。
仮想環境
仮想環境とは、同じパソコン内に別パソコンのようなPython専用の構築された環境のことを言います。論理的に独立した環境で、パッケージによる依存性や互換性に左右されることなく実行可能となります。
モジュール
.pyという拡張子が付いたPythonファイルのことです。関数やクラスが記載されており、実現したい処理が機能するようにまとめられています。
パッケージ
モジュールをいくつかまとめたものをパッケージと呼びます。
ライブラリ
いくつかのパッケージをまとめて、一つのアプリケーションとしてインストールできるようにしたものです。
サードパーティ
オリジナルメーカーが開発したパソコンや周辺装置、ソフトウェアなどを対象として、それに対応する製品やソフトウェアなどを販売・提供するメーカーのことです。製品を開発したメーカーをファーストパーティーと呼びます。
最後に私がPython勉強のために購入した書籍を紹介しておきます。
この本は2~3時間で読み終えることができます。今回私が紹介したPythonによるExcel操作以外にも多数のことが勉強できますし、初心者に優しい内容になっているのでオススメです。
今回のまとめ
今回はPythonでExcel作業を自動化する方法を記事にしました。少しでも皆さんの参考になれば幸いです。大変長くなりましたが、最後まで読んで頂き、ありがとうございました。
Pythonの使用準備
VS codeのインストール
実践/コーディング