PYTHON LAB
Pythonラボ
Pythonでの業務効率化・ツール開発の記録をまとめています。GUIアプリ作り、Excel×メール自動化、請求書自動化、スクレイピング、AI活用まで、実際に手を動かして作ったツール別に記事を並べました。
はじめの一歩: 開発環境を整える
CustomTkinterでGUIアプリを作る(全4回)

CustomTkinterのインストールと使い方|最初のウィンドウから入力フォームまでコード付き解説
Python標準のTkinterより見た目がモダンなGUIライブラリ「CustomTkinter」の入門ガイド。pip installでの導入から、CTkLabel・CTkButton・CTkEntry・CTkFrameの使い方、pack配置とgrid配置の違いまで、コピペで動くコードと実際の画面をセットで解説します。

CustomTkinterでオリジナルのメニューバー(File・表示・設定・Help)を自作する
CustomTkinterには無いメニューバー(File・表示・設定・Help)を、CTkFrameとCTkButtonで自作する方法を、5段階のサンプルコードとダウンロード付きで解説します。

CustomTkinterでオリジナルのMessageBox(確認・警告・エラー)を自作する
CustomTkinterには標準のメッセージボックスがありません。CTkToplevelで情報・警告・エラー・確認の4種類のダイアログを自作する方法を、5段階のサンプルコード付きで解説します。

CustomTkinterのテンプレートを無料配布|サイドバー付きのモダンなダークUI(GitHub公開)
CustomTkinterのテンプレート「CTk App Shell」をGitHubで無料公開。サイドバー・ダッシュボード・設定画面・メッセージボックス入りのダークUIです。Windows実機で見つかった4つの罠の直し方も解説。
Fletでアイコン・UIを使いこなす

【保存版】Fletアイコン一覧&使い方|バージョンで名前が変わってAIが誤爆する理由
Fletのアイコンはバージョンごとに書き方が変わり続けており、AIに書かせると古いコードでエラーになりがちです。Flet 1.0の変更点を年表と実例で整理し、正しい直し方まで解説します。

Fletのレイアウトが崩れてもエラーが出ない理由|Row/Column・expand・ResponsiveRowで直す方法
Fletはレイアウトが崩れてもエラーもコンソール警告も出しません。AIがよくやるexpand忘れ・ネスト崩壊のパターンと、ResponsiveRow・scrollを使った直し方を解説します。

Fletで画面遷移が動かない理由|page.go廃止とft.View引数順の罠、TemplateRouteの使い方
page.go()はFlet 1.0で完全に削除。さらにft.Viewの引数順序が変わり、エラーなく画面が真っ白になる罠があります。page.navigate・TemplateRouteでの正しい直し方を解説します。

【無料配布】Flet 1.0テンプレート集|基本構成+Excel取込対応の社内ツールひな形
アイコン・レイアウト・画面遷移で見つけた知見を反映したテンプレート2種をGitHubで無料配布。FilePickerの罠やExcel取込対応など、新たに見つかった注意点もまとめました。
DearPyGuiでGUIアプリを作る

DearPyGuiの使い方|pipでのインストールから日本語表示・画面の作り方まで【Windows・2.3.1対応】
DearPyGui 2.3.1をWindowsで実際に動かして確認。日本語が「????」になる件の直し方、ボタン・入力欄・表の使い方、日本語タイトルで落ちる罠まで。メモ帳アプリのテンプレートも配布します。

DearPyGuiで日本語タイトルにするとエラーも出さずに落ちる原因と回避策|0xC0000005【Windows・2.3.1】
create_viewport()のタイトルを日本語にすると、Windowsではエラーも出さずに落ちます。終了コードとfaulthandlerで原因を絞り込んだ流れと、SetWindowTextWで日本語タイトルを正しく出す回避策を紹介します。

DearPyGuiのフォント設定と文字サイズの変え方|日本語が「?」になる原因と2.3の変更点
add_font・bind_item_font・set_global_font_scaleで文字サイズを変える方法と、2.2と2.3.1の比較。「髙」「﨑」「①」が?になる落とし穴や、日本語を含むフォルダのフォントが読めない件も解説します。

100万行以上のCSVを開いてグラフ化|Excelの行数上限を超えるデータを見る無料ビューア【Python・DearPyGui】
Excelで開けない1,048,576行超えのCSVを、分割せずにグラフで見られる無料ソフト「CSV Viewer」を配布。後半はDearPyGuiでの作り方と、pandas 3の日時の変化など作っていて見つかった罠を紹介します。
NINJIN Mailを自作する(Excel×メール一括送信、全3回)

Python×Excelでメール一括送信ツールを自作する【第1回】pandasでExcel名簿(氏名・アドレス・会社名)を読み込む
PythonでExcelの名簿からOutlookメールを一括送信するツールを全3回で自作します。第1回はpandasのread_excel()とdf.iterrows()で氏名・アドレス・会社名を1行ずつ読み込む基本処理を、pip installの手順つきで解説します。

tkinterのfiledialogでExcelファイルを選択する方法|前回フォルダの記憶も実装【開発記②】
Pythonで業務効率化ツールを開発!第2回はtkinterのfiledialogを使い、任意のExcelファイルを選択する方法と、json形式でフォルダパスを記憶させる機能を解説。「たかが1クリック」を削るUX向上のコツを現役エンジニアが紹介します。

PythonでOutlookメールを自動送信する方法|pywin32でExcelの名簿から差し込み一括送信【第3回】
Pythonとpywin32でOutlookのメールを自動送信する方法。Excelの名簿から氏名・会社名を.format()で本文に差し込み、mail.Display()で確認してからmail.Send()で一括送信するまでをコード付きで解説します。
Invoice Maker(Excel請求書自動化ツール、全3回)

PythonでExcelをPDFに変換する方法|openpyxlとpywin32で請求書を自動作成【第1回】
PythonでExcelファイルをPDFに変換する方法を初心者向けに解説。openpyxlでセルの値を読み取り、pywin32(win32com)でExcelを操作してPDF出力する手順を、コピペで動くコード付きで紹介します。data_only=Trueの落とし穴など、つまずきポイントも解説します。

PythonのforループでExcelから請求書を連続PDF出力|ファイル名の重複回避とtry-finallyの例外処理【第2回】
Pythonのforループを使い、受注管理表の複数行から請求書を次々とPDF出力する方法を解説します。for i in range()で行をずらす書き方、f-stringでファイル名の重複(上書き)を防ぐ方法、try…finallyでエラー時もExcelのプロセスを確実に終了させる例外処理まで、テストコード全文つき。

CustomTkinterでPythonツールをGUIアプリ化する方法|filedialogでファイル選択・クラスで設計【第3回】
PythonスクリプトをCustomTkinterでデスクトップGUIアプリに作り替える手順を解説。filedialogによるExcelファイル選択、CTkEntryの.get()で開始行・終了行を受け取る方法、クラスを使ったアプリ設計まで、請求書自動化ツールを例にコード付きで紹介します。

PythonでExcel請求書を自動PDF化するツールの作り方|openpyxl・pywin32・CustomTkinter【全3回まとめ】全3回まとめ
PythonでExcel請求書を自動PDF化するツール「Invoice Maker」の制作シリーズ全3回をまとめて解説。openpyxlとpywin32による基本ロジック、for文でのループ処理、CustomTkinterを使ったGUIアプリ化まで、業務自動化の全ステップをこの1記事で確認できます。
スクレイピング・データ取得

Pythonスクレイピングで取得件数が0件になる原因と対策|robots.txt・待機時間の作法とRequests/Selenium【前編】
Pythonで記事収集ツールを作ろうとしてRequestsとSeleniumのどちらも取得件数0件になった記録です。原因のJavaScript描画(Lazy Load)、スクレイピング前に確認する3つの作法(robots.txt・time.sleepの待機時間・練習用サイト)、汎用ツールが現実的でない理由を実体験ベースで解説します。

スクレイピングをやめてWordPress REST APIでデータ取得する方法|/wp-json/wp/v2/posts でブログ記事一覧を抽出【後編】
HTML解析をやめ、WordPress REST API(/wp-json/wp/v2/posts)で記事一覧をExcel化する方法を解説します。10数行のシンプルなコード、CustomTkinterとthreadingで作ったモード切替つきGUIツールの構造、そして「ECサイトの価格調査」を最終的に断念した理由まで。スクレイピング開発記の後編です。
AI活用
VBA基礎解説(全6回)

VBAとは?Excelで何ができるかを初心者向けに解説|自動化の例・学ぶメリット・マクロ記録との違い
VBA(Visual Basic for Applications)がどういうものかを、プログラミング未経験の方向けに解説します。売上集計・複数ファイルの統合・帳票の自動作成などVBAでできる自動化の具体例、学ぶメリット、「マクロの記録」やPythonとの違いと使い分けまで。Excelに標準搭載で費用なしに始められます。

VBAのコードはどこに書く?開発タブの表示からVBAエディタ・標準モジュール・実行まで【初心者向け】
VBAのコードを書く場所と、最初のマクロを実行するまでの手順を画面つきで解説します。「開発」タブのリボン表示、Alt+F11でのVBAエディタの開き方、標準モジュールの追加、MsgBoxを表示するコードの入力、F5での実行まで。数分で始められます。

VBAの基本構文はこの3つ|Sub・If文・For文の書き方と意味【初心者向け】
VBA初心者がまず覚えるべき基本構文はSub・If文・For文の3つだけです。マクロの入れ物になるSub、条件で処理を変えるIf文、処理を繰り返すFor文の書き方を、短いサンプルコードとRange・Cellsの読み方つきで解説します。実務のマクロはこの3つの組み合わせでできています。

Access VBAで作る対応履歴管理データベース【無料テンプレート配布】
問い合わせ・トラブル対応の履歴をAccessで一元管理できる無料テンプレートを配布。検索・登録・編集・Excel出力まで対応したVBA製データベースの使い方を画像付きで解説します。

Access VBA 複数条件検索フィルタの作り方【検索・排他制御・Excel出力の設計パターン】
Access VBAで複数条件検索フィルタ・排他制御・Excel出力を実装する設計パターンを解説。For Eachで配列を使う際の落とし穴など、実際にハマったエラーも交えて紹介します。

Access VBA GetOpenFileName実装でAccessがクラッシュした話【Win32 API構造体サイズエラー】
非公式APIのWizHookをWin32 APIに置き換えようとしたら、Accessがクラッシュした実体験を解説。構造体サイズエラーの原因と、生成AIのコードを検証する大切さを紹介します。

【Access VBA開発記】対応履歴管理データベース 全3回完全ロードマップ全3回ロードマップ
Excelでバラバラになりがちな対応履歴を、Access+VBAで一元管理するデータベースを自作。全3回シリーズのロードマップ記事です。テンプレート配布・VBA設計解説・Win32 APIクラッシュ体験談まで一気に読めます。
Follow me on X
本ブログの中の人「ニンジン🥕」はXやってます。新着記事はいち早くポストでお知らせしているので、見逃したくない方は @ninjin_py_vba をフォローしてみてください🥕
@ninjin_py_vba をフォロー

