MENU
  • 手帳
    • 手帳 リフィル自作した手帳のリフィルを公開していきます!
    • 手帳 レビュー
    • 手帳 アイデア
    • 手帳 ジャーナリング
  • 独学
    • 独学 キャリアコンサルタント国家資格キャリアコンサルタントの試験対策や学んだコトなどをまとめていきます!
    • 独学 プログラミング
    • 独学 リスキリング自分で楽しく効率よく学習するリスキリングのTipsや参考情報をまとめますᕦ(ò_óˇ)ᕤ
  • ワーク
    • キャリア 転職
    • マインドセット
    • マインドフルネス自分の気持ちを高めて、常に前向きに平常心でいるためのTipsや参考情報をまとめます!
    • ツール活用 効率化
人気の記事ランキングTOP 5!
  • 【自作手帳】自作リフィルのおすすめテンプレート10選!(PDF無料ダウンロード可!)
  • 【2026最新】ジャーナリングのおすすめ本10選!Unlimited対応も!
  • 【自作手帳】Word,Excelで出来る!A5システム手帳のリフィル自作方法
  • 【無料】Goodnotes6で使えるデジタルプランナー・テンプレート10選(PDFダウンロード可)
  • 【保存版】Goodnotes6の使い方まとめ!PDFの読み込み・PDF化・メモの書き方を徹底解説
手帳でキャリアも人生も自分らしく!
キャリアの実験室
  • 手帳
    • 手帳 リフィル自作した手帳のリフィルを公開していきます!
    • 手帳 レビュー
    • 手帳 アイデア
    • 手帳 ジャーナリング
  • 独学
    • 独学 キャリアコンサルタント国家資格キャリアコンサルタントの試験対策や学んだコトなどをまとめていきます!
    • 独学 プログラミング
    • 独学 リスキリング自分で楽しく効率よく学習するリスキリングのTipsや参考情報をまとめますᕦ(ò_óˇ)ᕤ
  • ワーク
    • キャリア 転職
    • マインドセット
    • マインドフルネス自分の気持ちを高めて、常に前向きに平常心でいるためのTipsや参考情報をまとめます!
    • ツール活用 効率化
キャリアの実験室
  • 手帳
    • 手帳 リフィル自作した手帳のリフィルを公開していきます!
    • 手帳 レビュー
    • 手帳 アイデア
    • 手帳 ジャーナリング
  • 独学
    • 独学 キャリアコンサルタント国家資格キャリアコンサルタントの試験対策や学んだコトなどをまとめていきます!
    • 独学 プログラミング
    • 独学 リスキリング自分で楽しく効率よく学習するリスキリングのTipsや参考情報をまとめますᕦ(ò_óˇ)ᕤ
  • ワーク
    • キャリア 転職
    • マインドセット
    • マインドフルネス自分の気持ちを高めて、常に前向きに平常心でいるためのTipsや参考情報をまとめます!
    • ツール活用 効率化
  1. ホーム
  2. 独学
  3. 独学 プログラミング
  4. 【Python自動化】openpyxlを使って 社内のExcel作業を自動化する

【Python自動化】openpyxlを使って 社内のExcel作業を自動化する

2024 11/21
独学 プログラミング
ワタシ

今回は社内でのエクセル業務の自動化について理解を深めます。

Pythonを使うと、Excel仕事を効率化・自動化することが可能です。

では具体的にどうやるのか?Pythonかじりはじめたばかりでもできるのか?実務で使えるのか?

この点を明らかにするべく、営業上がり・非エンジニアの私でも出来るレベルの効率化ワザをまとめます(‘◇’)ゞ

合わせて確認したい記事

Pythonを時短で基礎から応用まで一気に学びたい時はこちらもオススメ!
>>【Python】TechAcademyを実際に使ってみて学べたこと

目次

今回の論点整理

今回のアウトプット

今回は既存のエクセルデータの編集をPythonを使って行います。

イメージとしては以下のように、指定の範囲をコピーして貼り付けるなどのエクセルの基本作業をプログラムにやってもらいます。

普段はwindows機を使っているので、ここらへんはマウスを使って、エクセルでポチポチやっているわけですが、これを効率化できないかと考えます。

特に、定型的な業務になっているものは、毎回開いて同じ加工をする作業は自動化できるはず!という思想に則り考えます。

参考にしているのは以下の書籍です。ポイントを絞ってかなり詳しく記載してもらえておりオススメです。

めんどうな作業が秒速で終わる! Excel×Python自動化の超基本
created by Rinker
¥2,134 (2026/02/05 22:19:37時点 Amazon調べ-詳細)
  • Kindle
  • Amazon
  • 楽天市場
  • Yahooショッピング
ツマ

参考書があると目的に対して勉強の流れが明確になるね。

今回の勉強背景

今回は現業でのデータ活用を深めるべく学んでまいります。

ここで、現業のデータの利活用の流れを考えると下記、大きく3つのフェーズで考えられます。

  • フェーズ1:データ収集
    ▷全国の取引先からのアンケートやアセスメント結果、販促データを収集
  • フェーズ2:データ抽出
    ▷上記のデータを抽出して、整理した資料を作成して考察
  • フェーズ3:データ共有
    ▷出てきた知見を販促資料や戦略の基礎資料として共有

ざっくりいうとこんな感じで大別されます。

その中で、日常業務で関わるところは多くの場合フェーズ2とフェーズ3の工程に派生した業務(雑務)だったりします。

そのためこの点をもっと業務効率化(自動化)できないかというのが焦点です。

ワタシ

実務に繋がること・プラスになることを意識した方がモチベが続きやすいと思っています。

今回の位置づけ

また、この領域を自動化させるために必要なステップは以下の6ステップだと考えています。

その上で、今回はデータは何らかの形で抽出されている前提で、そのデータをいじる工程であるSTEP1を対象にします。

上記を実現する手順について下記に備忘録的にまとめたいと思います。

今回のポイントは以下の3点になります。

抑えドコ!
  • Excelファイルをいじれる関数をインストールする
  • コピペをするところからやってみる
  • 複数データを読み込み、新タブで出力する

順に触れていきます。

Excel業務の自動化に向けたポイント

① Excelファイルをいじれる関数をインストールする

まずは何はともあれ、エクセルがいじれる環境にしないといけないので、ここの整備を行います。

Excelの作業は以下のコードでいじくれるようになります。

import openpyxl #エクセルのブックを操作するライブラリ の読み込み
import re #文字列操作をするライブラリの読み込み

これを読み込んだ上で、コピペしたりなどのエクセルで普段やる業務にうつっていきます。

ワタシ

まぁこれがないと始まらないですよね…。。

② コピペをするところからやってみる

そして次に考えたいのが、エクセルでいうコピペの作業です。

これは、結論からいうと下記のような関数で出来るようになります。

#コピーアンドペーストする関数 
def copyAndPaste(bookName,sheetName,fromCellRange,toCell):
    workBook = openpyxl.load_workbook(bookName)  #指定したファイル名でエクセルブックを開く
    workSheet = workBook[sheetName]
    #指定したシート名のシートを取得する
    fromStartCell ="" #コピー元開始セル
    fromEndCell = "" #コピー元終了セル
    if fromCellRange.find(':') != -1:        #:が含まれているかどうか判定 
        workCellData = re.split(":",fromCellRange) 
        fromStartCell = workCellData[0]
        fromEndCell = workCellData[1]
        fromStartCell = getRowAndColumn(fromStartCell) #下記で関数を定義している!
        fromEndCell = getRowAndColumn(fromEndCell)
    else:                         #:が含まれていないときに処理される
        fromStartCell = getRowAndColumn(fromCellRange)
        fromEndCell = fromStartCell
    toCell = getRowAndColumn(toCell)
    wrow = 0 #貼り付け行位置計算用の変数
    for i in range(fromStartCell[0],fromEndCell[0]+1):   #行のループ
        wcol = 0 #貼り付け列位置計算用の変数
        for j in range(fromStartCell[1],fromEndCell[1]+1): #列のループ
            workSheet.cell(row = toCell[0] + wrow, column = toCell[1] + wcol).value = workSheet.cell(row = i, column = j).value
            wcol = wcol + 1
        wrow = wrow + 1
    workBook.save(bookName) 
    
#上記の関数内に出てくる関数
def getRowAndColumn(cellAdress):     #指定したセル名から行番号と列番号を取得
    column = re.split("[\d]",cellAdress) #列名の取り出し(リスト)
    column = column[0] #列名を取り出し(文字列)
    row = cellAdress.replace(column,"")  #行番号を取得
    row = int(row)              #行番号を文字列から数値に変換
    column = openpyxl.utils.column_index_from_string(column) #列名を列番号に変換
    return [row,column]          #行番号と列番号をリストで戻す

とりあえずよくわからんでも、上記をコピペして読み込んだ上で下記のファイルで作った関数を使うとそれっぽくできます。

#手元ファイル(販促メモ.xlsx)を読み込み、B2からF7の範囲を選択肢B10に貼りつけ
copyAndPaste("販促メモ.xlsx","Sheet1","B2:F7","B10")

出てくるアウトプットは以下の通りで、上段のデータを下段にコピペすることが出来ます。

この読み込みファイルや指定の変数をかえればコピペは問題なくできるはずです。

尚、今回forループやdefの関数が出てきましたが、何をしているかというとそれぞれ以下の通りです。

  • forループ:繰り返し処理(今回は行と列のセルを一つずつ参照してコピー作業をしています)
  • def関数:定型作業をお気に入り登録のようにまとめます(今回はコピペの作業を登録しています)

これは「python ○○」で検索すると腐るほどでますので都度、何をしたいのかの概要は調べることをお勧めします。

ツマ

なんか急に難しくなったね。。

ワタシ

ただ、コピペするだけで動くので、理解は後でも良いかと。

③ 複数データを読み込み、新タブで出力する

では次にエクセルで言うところの新しいタブを創るみたいな作業をプログラムで実行します。

結論からいうと下記のようなプログラムを組みます。

#シートごとにエクセルブックに書き出し
with pd.ExcelWriter("販促リスト.xlsx",engine="openpyxl",date_format='YYYY/MM/DD',datetime_format='YYYY/MM/DD',mode = "a") as writer: 
    df["合体シート"].to_excel(writer,sheet_name="統合表",index=False)

これで新しいタブはできます。ただそれだけやっても芸がないので、新しいタブに、既存のデータを集約することを想定すると下記のような形で実践できます。

#複数のシートの情報を1つのシートにまとめる
import pandas as pd   
df = pd.read_excel("販促リスト.xlsx",sheet_name=None)
dataList = [] 
sheetsList = list(df.keys())
for sheet in df: #シートループ
    for index,rows in df[sheet].iterrows(): #行ループ
        work = [] 
        for row in rows:#列ループ
            work.append(row) 
        dataList.append(work)
columns = list(df[sheetsList[0]].columns)   #列名をリストで取得
df["合体シート"] = pd.DataFrame(dataList,columns=columns)

#シートごとにエクセルブックに書き出し
with pd.ExcelWriter("販促リスト.xlsx",engine="openpyxl",date_format='YYYY/MM/DD',datetime_format='YYYY/MM/DD',mode = "a") as writer: 
    df["合体シート"].to_excel(writer,sheet_name="合体シート",index=False)

ここでやったのはシンプルに以下のように既にあるタブのセル内容を参照して新たなタブ(合体シート)にコピペして合体する作業です。

簡単ではありますが、貼付けが指定出来、コピペが出来、タブも組合せられれば、基本的なベース作業は自動化できる土台が出来たと思います。

これを元にまずは、現業の集計業務など、身の回りのファイルに置き換えて、まずは自分で組みなおして、自動化する術を腹落ちさせていくのが良いと思います。

ツマ

これはどこの会社でもよくやる作業だね。

まとめ 

上記を活用する際に、理解しておくべきポイントは以下3点でした。

今回の抑えドコ
  • Excelファイルをいじれる関数をインストールする
    ▷まずは専用のライブラリを読み込み環境を整える
  • コピペをするところからやってみる
    ▷範囲選択とコピペの関数を利用して転用する
  • 複数データを読み込み、新タブで出力する
    ▷身の周りのデータを元に試しながら腹落ちさせていく

冒頭申し上げた通り、出来ること一つ一つは大したことないですが、どれもエクセル作業の基礎のパーツになっているかと思います。

そのため、上記をまずは出来る範囲で試しつつも、目の前の仕組を変えられる範囲で少しずつプログラムして、小さなパーツを積み上げる先に完全自動化があると思います。

めんどうな作業が秒速で終わる! Excel×Python自動化の超基本
created by Rinker
¥2,134 (2026/02/05 22:19:37時点 Amazon調べ-詳細)
  • Kindle
  • Amazon
  • 楽天市場
  • Yahooショッピング

ご精読頂きありがとうございました!
m(_ _)m

【参考】Python初心者のお勉強のお供

▼PythonでExcelの操作を自動化する▼

【関連】Python×効率化 社内のexcel作業の自動化を試みる①

【関連】Python×効率化 社内のexcel作業の自動化を試みる②

【関連】Python×効率化 社内のexcel作業の自動化を試みる③

【関連】Python×効率化 社内のexcel作業の自動化を試みる④

【関連】Python×効率化 社内のexcel作業の自動化を試みる⑤

上記の内容と併せて実務で活かすという視点では下記の参考図書も合わせて確認すると理解が深まります(-_-)

▼オススメの参考書籍(Kindle)▼

Python2年生 データ分析のしくみ 体験してわかる!会話でまなべる!
created by Rinker
¥2,178 (2026/02/05 17:48:45時点 Amazon調べ-詳細)
  • Kindle
  • Amazon
  • 楽天市場
  • Yahooショッピング
Marketing Python マーケティング・パイソン AI時代マーケターの独習プログラミング入門(できるビジネス) できるビジネスシリーズ
created by Rinker
¥2,376 (2026/02/05 21:44:16時点 Amazon調べ-詳細)
  • Kindle
  • Amazon
  • 楽天市場
  • Yahooショッピング
Python実践データ分析100本ノック
created by Rinker
¥2,376 (2026/02/05 17:48:46時点 Amazon調べ-詳細)
  • Kindle
  • Amazon
  • 楽天市場
  • Yahooショッピング

▼おすすめの動画学習(Udemy)▼

>>ゼロからPythonで学ぶ人工知能と機械学習 【2023年最新版】

>>現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用

>>独学で身につけるPython〜基礎編〜【業務効率化・自動化】

【参考】Python初心者が抑えたいポイント集

Python(主にデータ分析・自動化)に関しては

下記に実践したポイントをまとめています。基本的にコピペするだけでそのまま使えます٩( ᐛ )و

あわせて読みたい
【Python入門】コピペしてそのまま使えるPythonの自動化プログラムまとめ ワタシ ども、らーにゃです。今回はPythonのプログラムについてまとめます。 Pythonをもっと身近なことに応用できないか? プログラミングをかじり始めた人で、こんなこ...

業務効率化・自動化においてはGoogle Apps Scriptもセットで学ぶことをオススメ!

こちらもコピペしてすぐに使えます!

あわせて読みたい
【GAS入門】コピペしてそのまま使えるGoogle Apps Scriptプログラム一覧 ワタシ ども、らーにゃです。今回はGASの活用についてまとめます。 身の回りのことをもっと自動化できないものか? 仕事でもプライベートでも忙しくなるほどに自動化の...

PythonとGoogle Apps Scriptどちらを深めようかを迷っていればこちら!

あわせて読みたい
【徹底比較】PythonとGASをどちらを学ぶべきか?実際に両方を学んで分かった違いとオススメ学習法 ワタシ ども、らーにゃです。今回はPythonとGASを比較していきます。 自分は非エンジニアだけど… 「もっともっと効率化したい!」 「プログラムを書けるようになりたい...
独学 プログラミング
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • 【手帳術】手帳で家計簿!収支管理を簡単に行うアイデア・テンプレート(PDF無料ダウンロード可!)
  • 【要約】「ALLIANCE」とは何か?アルムナイ・パラレルキャリアを支える仕組

この記事を書いた人

らーにゃのアバター らーにゃ

ビビっときたTipsや手帳術を発信します ٩( ᐛ )و

●家族:フルキャリ妻と子供2人

●資格:国家資格キャリアコンサルタント

●趣味:手帳歴20年 | 自作歴12年| デジプラ歴4年

関連記事

  • 【GAS】ショートカットを利用してApple Watch→スプレッドシートのデータ連携を行う
  • 【レビュー】ChatGPTの使い方 | プログラミング初心者の応用 (GAS/Python)
  • 【GAS】Google Fitのデータをスプレッドシートに引き抜くプログラムを考える
  • 【徹底比較】PythonとGASをどちらを学ぶべきか?実際に両方を学んで分かった違いとオススメ学習法
  • 【GAS】TogglのAPIを利用したデータ連携の仕様変更について
  • 【Python入門】コピペしてそのまま使えるPythonの自動化プログラムまとめ
  • 【Python自動化】GoogleスプレッドシートにPythonからデータを流し込む方法
  • 【Python自動化】タスクスケジューラで定時にPythonファイルを自動実行する方法

コメント

コメントする コメントをキャンセル

ブログの記事一覧
カナダでキャリコン/コーチをしながら理想のセカンドキャリア作るためのヒントや考え方をブログやYouTubeで発信中!

●家族:フルキャリ妻1人、子供2人
●資格:国家資格キャリアコンサルタント
●趣味:手帳歴20年 | 自作歴12年| デジプラ歴4年
人気の記事ランキングTOP5!
  • 【自作手帳】自作リフィルのおすすめテンプレート10選!(PDF無料ダウンロード可!)
  • 【2026最新】ジャーナリングのおすすめ本10選!Unlimited対応も!
  • 【自作手帳】Word,Excelで出来る!A5システム手帳のリフィル自作方法
  • 【無料】Goodnotes6で使えるデジタルプランナー・テンプレート10選(PDFダウンロード可)
  • 【保存版】Goodnotes6の使い方まとめ!PDFの読み込み・PDF化・メモの書き方を徹底解説
目次
検索
  • プロフィール
  • サイトマップ
  • プライバシーポリシー
  • お問い合わせ

© キャリアの実験室.

  • メニュー
  • ジャーナル
  • 自作手帳
  • アイデア
目次