【初学者向け】Python社内DX7選

Pythonを使うことで身の回りの面倒な業務を効率化することができます。

本記事では、Pythonで社内DX（業務効率化）できることを7つの分野に分けてご紹介したいと思います。


## Excel処理
Pythonのライブラリ**openpyxl**を使うとExcelファイルを操作することができます。
以下はopenpyxlで処理できる基本操作の一部です。

- ファイル操作（新規作成、保存）
- シート操作（集計、移動、削除）
- 行と列の操作（グループ化、挿入、削除）
- セルの操作（取得、代入）

:::note warn
Excelの関数（SUM関数やVLOOKUP関数など）は使えないので注意
:::

具体的には、複数のシートから集計シートを作成したり、ExcelやAccessのデータベースに接続してデータを加工し、グラフを作成することが可能です。

**※Accessのデータベースに接続する場合は、別途pyodbcモジュールを使う必要があります。**

https://arika-blog.com/python-pyodbc/

### 追記
2023年8月、ExcelにPythonが追加されました。

概要を知りたい方はこちら

https://qiita.com/python_academia/items/f2b3833b457e79a9bdcd

実際に機械学習をやってみました

https://qiita.com/python_academia/items/086340b5344493911dbe

2025年4月、「Excel自動化 はじめの1歩」を執筆しました。
Excelの自動化をしてみたい方は、是非チェックしてみてください。

https://zenn.dev/python_academia/books/f1c725e023dcae

## 物体検出
Pythonには簡単に物体検出ができる **yolo** というAIが存在します。
混雑状況の把握や在庫管理などに活用することができます。

またyoloとは、**「You Only Look Once（一度しか見ない）」**
の頭文字を取ったもので、非常に早く物体を検知できるのが特徴です。

興味のある方は是非こちらをご確認ください。

**テキストVer**

https://arika-blog.com/yolov8/

**動画Ver**
<iframe width="" height="400" src="https://www.youtube.com/embed/okvv3h6TPxw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

### 追記
2024年2月にyolov9が発表されました。

https://arika-blog.com/yolov9/

## RPA

RPAとは、PC上で行うマウスやキーボードの操作を自動化する仕組みのことを言い、入力作業・ルーチン業務の自動化ができます。（入力作業の場合、事前のデータ整形にPythonが使えるので便利です。）

タスクスケジューラ（Windows）と組み合わせれば、お昼休みに業務を終わらせておくことができます。

また、ショートカットキーをたくさん覚えるため、普段のパソコン業務も早くなり、一石二鳥です。

以下に基本的な操作をまとめています。
更に詳しく知りたい方は公式ドキュメントをご確認ください。
https://pyautogui.readthedocs.io/en/latest/


|  関数名  |  説明  |
| ---- | ---- |
|  moveTo(x, y, duration=0)  |  マウスを座標 (x, y) に移動する<br> duration 引数を使用して移動にかける時間を指定できる（秒単位）|
|  dragTo(x, y, duration=0, button='left')  |  マウスボタンを押しながら、座標 (x, y) にドラッグする<br> duration 引数を使用してドラッグにかける時間を指定できる（秒単位）<br>デフォルトのボタンは左ボタン |
|  click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0)  |  clicks 引数でクリック回数を指定でき、 interval 引数でクリック間隔を秒単位で指定できる<br> button 引数で使用するボタンを指定でき、デフォルトは左ボタン<br> duration 引数でクリックにかける時間を秒単位で指定できる|
|  doubleClick(x=None, y=None, interval=0.0, button='left', duration=0.0)  |  マウスボタンをダブルクリックする<br>interval 引数でクリック間隔を秒単位で指定できる<br> button 引数で使用するボタンを指定でき、デフォルトは左ボタン<br>duration 引数でクリックにかける時間を秒単位で指定できる|
|  write(message, interval=0.0)  |  キーボード入力をシミュレートする<br> message 引数に入力するテキストを指定する<br> interval 引数で入力する文字の間隔を秒単位で指定できる<br>|
|  press(keys, presses=1, interval=0.0)  |  keys 引数に押すキーを指定する<br> presses 引数でキーを押す回数を指定できる<br>interval 引数でキーを押す間隔を秒単位で指定できる|
|  hotkey(*keys, interval=0.0)  |  キーボードのホットキーを押す<br>keys 引数に押すキーを指定する<br>interval 引数でキーを押す間隔を秒単位で指定できる|

## PDF処理
OCRを使って文字を抽出することができます。
例えば複合機で一括スキャンしたPDFファイルを会社ごとに分割することが可能です。

:::note info
OCR（光学的文字認識）とは、手書きや印刷された文字をイメージスキャナやデジタルカメラによって読みとり、コンピュータが利用できるデジタルの文字コードに変換する技術です。
:::

興味のある方は是非こちらの動画をご確認ください。<br><br>

<iframe width="" height="400" src="https://www.youtube.com/embed/hVAMm_QNPP8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



<br>また、camelotというライブラリを使うと、PDFに残っている表データを抽出することも可能です。
> [公式ドキュメントより引用](https://camelot-py.readthedocs.io/en/master/#)
![check box (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2638073/f8ad6ebc-fe72-cef0-17e6-fbd2571f8f34.png)

抽出した表データは、グラフ化したり、Excelに出力したりできます。

## フォルダ操作
ファイル名を一括変更したり、ファイル名を取得することができます。

タスクスケジューラ（Windows）と組み合わせて、定期的にフォルダを監視することもできます。

## メール処理
OutlookやGmailなどのメール処理を自動化することができます。

フォルダ操作と組み合わせて顧客ごとにファイルを添付することが可能です。

https://arika-blog.com/python-mail/

## スクレイピング
スクレイピングとは、WEB上の情報を収集することを言います。

収集した情報は、Excelに出力して活用したり、チャットツール（LINEやslack）に通知することができます。

チャットツールの活用は情報を素早く確認することができるので非常に便利です。

https://arika-blog.com/python-line/

## Pythonで社内DXするメリット
### 色々な処理を組み合わせることができる
Excelとメール、PDFとフォルダ操作など、複数の処理を１つのプログラム内で完結させることができます。

### GUI化・Webアプリケーション化できる
社内で共有する際に、GUI化・Webアプリケーション化することで直感的に操作できるようになります。

::: note info
**GUI**とは、グラフィカルユーザインターフェース(Graphical User Interface)の略で画面上にボタンやアイコンを表示し、直感的に操作できるようにしたものです。
反対に**CUI**というものもあり、こちらはキャラクターユーザーインターフェイス（Character User Interface）の略で命令をすべて文字によって行います。
:::

https://arika-blog.com/pysimplegui/

### exeファイル化して誰でも使える
Pythonでファイルをexe化すると、環境構築されていないパソコンでもPythonのプログラムを動かすことができます。

社内でプログラムを渡したいときに便利です。

### 機械学習を組み合わせることができる

機械学習とは、簡単に言うとコンピュータに学習能力を持たせる技術です。大きく分けて3つの学習方法があります。

- 教師あり学習: ラベル付きデータから学習する手法(分類、回帰など)
- 教師なし学習: ラベルなしデータから知識を獲得する手法(クラスタリングなど)
- 強化学習: 試行錯誤から最適な行動を学ぶ手法

用途に応じて適切な手法を選択することで、未知のデータに対して予測を立てることができます。

https://arika-blog.com/scikit-learn/

## おわりに
Pythonで社内DX（業務効率化）できることをまとめてみました。
業務改善のきっかけや、初学者の参考になれば幸いです。

**おすすめ記事**

https://arika-blog.com/python-threestep/