0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excelの仕事はPythonにぜんぶ投げる

Last updated at Posted at 2025-12-21

はーい。
さいきんクラウドソーシングで遊んでいます。

Excelの案件が結構あって、VBAの案件がそこそこあります。
スプレッドシートであれば、GASの案件がまあまあと言う感じです。

一般事務とITエンジニアの境目にあるツール、それがExcelだなと思います。

それで、ざっと案件を眺めてみると、「それ、Pythonでやったら一発で済むんじゃないか???」というものも多いです(偏見)。
目的地にたどり着けさえすれば手段は何でもいい場合、Pythonでやれば話が早いかもしれません。

「いやだ! 絶対にVBAでやるんだ!」とか「会社/上司の監視が合ってなかなか自分のツールにPythonとか入れられない」みたいな事情がない場合は、Pythonを頼ってみるのも悪くない選択肢だと思います。

CSVを読み込んでフィルタ+列追加

VBAのイメージ

Sub FilterAndCalc()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    Dim i As Long
    For i = 2 To lastRow
        If ws.Cells(i, 3).Value = "有効" Then
            ws.Cells(i, 5).Value = ws.Cells(i, 3).Value * ws.Cells(i, 4).Value
        Else
            ws.Cells(i, 5).Value = ""
        End If
    Next i
End Sub

Pythonのイメージ

import pandas as pd

df = pd.read_csv("input.csv")
df = df[df["状態"] == "有効"].copy()
df["売上合計"] = df["単価"] * df["数量"]
df.to_csv("output.csv", index=False)

読めない? 実は、読めなくても結構問題ありません。
ChatGPTが大体読めるからです。

そりゃあ、ちょっと、要件を読み落としてデータがぶっ壊れるとすごい困りが発生するわけですが、このVBAが読める人はこのPythonも読めてしかるべきですし、元コードがあるなら結果を比較しながらちゃっちゃとやることもできると思います。

まあ、注意は必要で、ソート順が思ってたのと違ったり、空白文字の扱いが違ったり、結構大規模なものを移植しようとすると罠が潜んでいることもあります。

また、コピペで動かそうとするとそうはいかず、Pythonの環境を作ってから、

pip install pandas

とか、

pip install openpyxl

とかして、必要なモジュールをpip installしていかなくてはならないですね。
(コンソール画面がしんどいひとには難しいです。)

Excelの作業にPythonを使用すると、びっくりするほどコトが簡単に済みます。
しかしExcelを事務作業でのみ使っている層はなかなかPython(プログラミング言語)までリーチしていません。せっせと難易度の高いVBAを弄っている印象があります。

なんでなのか、というと、実際の難易度というよりは、アクセスの良さなんじゃないかと思っています。VBAはExcelから開けるけど、Pythonはちょっとね。Python本体を入れたり、VSCodeを入れたりしないとだめだからね。

Pythonを使うとちょ~ちょ~ちょ~早いのです。

例として、Excelファイル(実際にはシート1枚のCSVファイル)をドンして最終的にHTMLのテーブルにガッするお仕事があったのですが、Pythonなら秒とは言わないまでも数分+手直しで済むなあ、と思いました。ただ、Pythonのない人にも使えるようにしなくてはならなかったのと、もともとExcelだったので、VBAでやりました。

しかし、私自身がITエンジニアだからそう思うのかもしれませんが、VBAよりもPythonのほうがはるかに簡単です。

AIの登場によってだいぶこの差(Pythonわからない)も縮まるようになってきたので、ChatGPTでドンッできる人はドンッしても良いと思います。

あるいは、ツールを提供する側の人は、PythonをPyinstallerでexeにしてやるのもいいですね。まあ、ちょっとブラックボックスになっちゃって、弄れないんですが。

一回やれば簡単だから。みんなやってるから。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?