新着記事一覧

IT・プログラミング Python

2024/4/21

【Python】Pythonでの自然言語処理(日本語)

こちらの記事では、自然言語処理についてまとめています。 Contents1 自然言語処理とは?2 自然言語処理の実装 自然言語処理とは? 自然言語とは、日本語や英語のような自然発生的に生まれた言語です。日常的に使用している自然言語について、言葉が持つ意味を解析し処理します。活用事例としては、チャットボット、音声認識AI、文字認識(手書き文字をカメラが認識し文字データへと変換する技術)、検索エンジン、翻訳、感情分析、文章要約などがあります。 文章の意味を機械に理解させるには、単語分割を行う必要があります。手 ...

続きを読む

IT・プログラミング Python

2024/4/8

【Python】統計学的モデル 時系列分析の実装

こちらの記事では、時系列分析の実装についてまとめています。 Contents1 時系列分析とは?2 定常性とは?3 時系列データの分析方法4 SARIMAモデルの実装 時系列分析とは? 時系列分析では、時間経過とともに変化する時系列データを扱います。時系列データの例としては、毎時間の気温、株価の推移等がこれにあたります。売上予測、来店者予測等、ビジネスにおいて重要な分析技術です。 時系列データには以下3種類があります。 1.トレンドデータの長期的な傾向。時間の経過とともに値が上昇・下降している時系列データ ...

続きを読む

IT・プログラミング Python

2024/4/1

【Python】主成分分析の実装

こちらの記事では、主成分分析を実装していきます。 Contents1 主成分分析とは2 主成分分析の手順について 主成分分析とは 主成分分析とは、次元削減を行う時によく使う手法です。例えば、いくつかの特徴量があるデータを2次元データに変換すると、できるだけ情報を保ったまま2軸での描画が可能になり、全てのデータを見やすく示すことができます。 主成分分析の実用例として、製品やサービスのスコアリングや比較(1次元に圧縮)、データの可視化(2,3次元に圧縮)、回帰分析の前処理などが挙げられます。 主成分分析の手順 ...

続きを読む

IT・プログラミング Python

2024/4/1

【Python】カーネル主成分分析の実装

こちらの記事では、カーネル主成分分析の手順についてまとめています。 Contents1 カーネル主成分分析とは2 カーネル主成分分析の実装 カーネル主成分分析とは 回帰分析等、機械学習の多くのアルゴリズムは線形分離できるデータが与えられることを前提としていますが、現実的には線形分離できないデータ、つまり非線形分離する必要があるデータがほとんどです。非線形分離する必要があるデータに対処できるのが、カーネル主成分分析(kernel PCA)です。 カーネル主成分分析ではN×M(データの数×特徴の種類)のデータ ...

続きを読む

IT・プログラミング Python

2024/3/29

【Python】機械学習(教師なし) クラスタリング DBSCANの実装

こちらの記事では、機械学習(教師なし)の非階層的クラスタリング DBSCAN法についてまとめていきます。 Contents1 クラスタリングとは2 DBSCANでの実装 クラスタリングとは データをクラスター(塊)に分割する操作のことです。クラスタリングの中でも階層的クラスタリングと、非階層的クラスタリングの2種に分けられています。 1.階層的クラスタリングデータの中から最も似ている組み合わせを探し出して、順番にクラスターにしていく方法です。最終的に全データをまとめるクラスターに行くつけば終了です。 2. ...

続きを読む

IT・プログラミング Python

2024/3/28

【Python】機械学習(教師なし) クラスタリング k-meansの実装

こちらの記事では、機械学習(教師なし)の非階層的クラスタリング k-means法についてまとめていきます。 Contents1 クラスタリングとは2 k-means法での実装 クラスタリングとは データをクラスター(塊)に分割する操作のことです。クラスタリングの中でも階層的クラスタリングと、非階層的クラスタリングの2種に分けられています。 1.階層的クラスタリングデータの中から最も似ている組み合わせを探し出して、順番にクラスターにしていく方法です。最終的に全データをまとめるクラスターに行くつけば終了です。 ...

続きを読む

IT・プログラミング Python

2024/3/28

【Python】機械学習のデータ前処理 外れ値の扱いについて

外れ値の処理についてまとめています。 Contents1 外れ値とは?2 外れ値の検知方法について 外れ値とは? 外れ値とは、他のデータと著しく乖離したデータのことを指します。データ内に外れ値が混在していると、分析結果に影響を及ぼしたり、機械学習モデルの学習過程で影響がでてしまい学習が進みにくくなる、などの影響が出てしまいます。 外れ値の検知方法について 外れ値の検知方法について、可視化、LOF(Local Outlier Factor )、Isolation Forestの3つの手法について紹 ...

続きを読む

Python

【Python】業務での具体的な活用例-PyAutoGUIでマクロ操作-

こんにちは、Haruです! 育休中にPythonというプログラミング言語を勉強し、現在業務で活用しています。

今回は業務での具体的な活用法を紹介したいと思います。

Haru

Pythonの業務効率化の本で「Excelの操作ができます」、「pptの操作ができます」等Pythonでできることの紹介はされているものの、具体的な活用例まで紹介しているものは少ないように思います。

今回は実際にHaruがどのように業務内で活用しているかをご紹介したいと思います。

効率化した業務概要

Haruの業務は海外営業です。25社の代理店に月1回Excelの受注表を送って、受注を取っています。

受注表は、マクロを組んでファイル加工の挙動をある程度自動化させ、最終的に各代理店毎にオファーする商品・価格のみを表示させ、名前を付けて保存しています。

が!マクロでファイ加工自動化させているとは言え、25回もこの作業を繰り返すのはめんどくさい!!

ということで、マウスの移動、クリック、ファイル加工の中で出てくる「このシートは完全に削除されます。続けますか?」とうアラート(以下写真)の削除ボタンクリック、名前をつけて保存する、これらの挙動を全てPythonで自動化させました。

活用したライブラリ

1.PyAutoGUI:マウスやキーボードを操作するGUI自動化のライブラリです。

2.pyperclip:Pythonでテキストをコピペすることができるライブラリです。

これら2個のライブラリを使用して、作業を自動化させました!!

コード

1つの代理店の受注表を作成するのに、以下のコードを作成。そちらを25社分回しています。

普段手動で行っている作業の座標への移動(マウスを動かす)や挙動(クリック、ボタンを押す、ファイル名入力、代理店名コピペ)等を全てPythonで行っています。

マクロを走らせているので、pyautogui.sleep()で待機時間を設けつつファイルを作成しています。

#集計表Excel設定、対応表1は代理店選択シートの隣に移動しておく
#代理店選択シートは160%にしておく
#対応表は85%で全ての代理店名が見えるように
#代理店選択シートがトップにくるようにして保存しておく
#One Driveは挙動が遅くなるので終了しておく
import pyautogui
import pyperclip

#ローカル所定の場所に保存してある座標ファイルをクリック
pyautogui.moveTo(1450,1040)
pyautogui.sleep(1)
pyautogui.doubleClick()
pyautogui.sleep(18)

#代理店名記載シートに移動してクリック
pyautogui.moveTo(10,1100)
pyautogui.moveTo(600,1100)
pyautogui.sleep(1)
pyautogui.click()

#代理店の選択はこのブロックの座標を変更
pyautogui.moveTo(200,565)
pyautogui.sleep(1)
pyautogui.click()
pyautogui.sleep(1)
pyautogui.hotkey('ctrl','c')

#Importer Selectシートに移動、クリック
pyautogui.moveTo(10,1100)
pyautogui.moveTo(400,1100)
pyautogui.sleep(1)
pyautogui.click()

#代理店選択をクリックして、ペーストする
pyautogui.moveTo(1100,450)
pyautogui.sleep(1)
pyautogui.click()
pyautogui.sleep(1)
pyautogui.hotkey('ctrl','alt','v')
pyautogui.press('v')
pyautogui.press('enter')
pyautogui.sleep(3)

#Price List 作成ボタンを押す
pyautogui.moveTo(400,800)
pyautogui.click()
pyautogui.sleep(15)

#削除ボタンを押す
pyautogui.moveTo(880,650)
pyautogui.click()
pyautogui.sleep(1)

#「ファイル」に移動しクリック
pyautogui.moveTo(20,60)
pyautogui.click()

#「名前をつけて保存」に移動しクリック
pyautogui.moveTo(70,400)
pyautogui.sleep(1)
pyautogui.click()

#「このPC」に移動しダブルクリック
pyautogui.moveTo(300,450)
pyautogui.doubleClick()
pyautogui.sleep(1)

# フォルダパス名入力欄に移動し、入力
pyperclip.copy(r'保存したいフォルダパス名')
pyautogui.moveTo(500,50)
pyautogui.click()
pyautogui.hotkey('ctrl','v')
pyautogui.press('enter')

#「ファイル名」をクリック
pyautogui.moveTo(300,420)
pyautogui.click()
pyautogui.sleep(1)

#ファイル名を入力
pyautogui.typewrite('April Order Sheet')

#「ファイルの種類」xlsxを選択
pyautogui.moveTo(300,450)
pyautogui.click()
pyautogui.sleep(1)
pyautogui.moveTo(300,470)
pyautogui.click()
pyautogui.sleep(1)

#「保存」をクリック
pyautogui.moveTo(750,590)
pyautogui.click()
pyautogui.sleep(1)

#「マクロ保存できません」ボタンクリック
pyautogui.moveTo(850,700)
pyautogui.click()
pyautogui.sleep(1)

#ファイルを閉じる
pyautogui.moveTo(1890,30)
pyautogui.click()
pyautogui.sleep(1)

メリット

25社分を手動で作成するのに1時間弱の時間を要していましたが、作業が自動化された上に約30分で終了!!
・とにかく作業が正確!!

Haru

書いたコードを実行し、そのまま放置で保育園に子供をお迎えに。帰宅後には指定フォルダに25社分のファイルが出来上がっています。本当に素晴らしい!!
手動だとファイル名や保存形式も間違うことがありましたが、Pythonにやってもらうことによって間違がなくなりました♪

まとめ

いかがでしたでしょうか?

この定型作業めんどくさいな~と思ったら、一度「定型作業概要 Python」でググってみてください!
すると、同様の悩みを持っている方が既にPythonで同様のことを実施している記事が見つかることがあります。お知恵拝借しましょう!

Haru

最近はChat GPTも登場しているので、AIにPythonで悩み解決できるかを聞いてみるのもいいですね~♪

以下記事にもPythonでの効率化事例を書いているので、よかったら見てみてください。
保活での情報収集で活用しましたが、他社価格等を一括で取得する作業にも応用できます。それでは!

  • この記事を書いた人

Haru

会社員。2回目の育休から仕事復帰。
職種は海外営業。
育休の過ごし方、育児、家事、プログラミング勉強について発信しています。

-Python
-,