【Python】いろんな作業の自動化を試して、分かったこと。

スポンサーリンク
作業の自動化 Python

Pythonで、作業の自動化ができる記事を読んでから、Pythonの学習をはじめました。

RPAや、EXCEL編集といろいろと試した結果、便利と感じたことや、難しいと思ったことなど、試した結果、分かったことをお伝えします。

 

スポンサーリンク

RPA

PRAとは、Robotic Process Automation(ロボット、プロセス、オートメーションの略)。
決められた手順の業務を自動化することです。

Pythonでは、pyautoguiというパッケージを使うことで、RPAを行うことができます。

便利と感じたこと。

「画像データの検知」ができるため、条件付き(あらかじめ保存しておいた画像データを検出し、次の操作を行う)の自動操作を実現できる点が便利でした。

画像データを入れ替えることで、画面の解像度や、表示色などの環境に依存せず、作ったプログラムを提供することができたことも、とても良い点でした。

 

 

「キーボード操作」ができるため、ショートカットキーを利用した操作ができる点は、いろんなソフトの操作が自動化できるので、とても便利と感じました。

たとえば、ショートカットで「ファイル名を指定して実行」を呼び出し、ブラウザや、リモートデスクトップ接続を起動し、作業の自動化が実現できると思います。

ブラウザでの操作や、リモートデスクトップで別環境に接続するなどは、作業でもよく使われる機能であるため、とても使い勝手の良い機能です。

 

難しいと感じたこと。

リモートデスクトップ接続で接続先の環境で自動操作する場合は、ウィンドウの表示サイズや、画面の表示位置が変わる場合があるため、自動操作が難しいと感じました。

pyautoguiパッケージで、できること。

pyautoguiパッケージでは、次のことができます。

 

キーボードとマウスを操作する。

キーボードとマウス操作

 

Pythonのプログラムで、キーボードとマウス操作を行うことができます。

画面上の座標(x,y)を指定して、マウスの移動とクリック操作、また、キー入力と、キー押下操作ができます。

import pyautogui     # pyautoguiパッケージを読み込む。

screenWidth, screenHeight = pyautogui.size()   
                              # 画面のサイズを取得する。
currentMouseX, currentMouseY = pyautogui.position()
                              # マウスの座標(x,y)を取得する。

# マウス操作
pyautogui.moveTo(100, 200)    # マウスのポインタをx=100,y=200の座標まで
                              # 移動する。
pyautogui.click()             # マウスをクリックする。
pyautogui.click(200, 300)     # マウスをx=200,y=300の座標でクリックする。 
pyautogui.doubleClick()       # マウスをダブルクリックする。

pyautogui.move(None, 50)      # マウスのポインタを100ピクセル下げる。  
pyautogui.moveTo(500, 600, duration=2)
                              # マウスのポインタをx=500,y=600まで2秒かけて
                              # 移動する。

# キーボード入力
pyautogui.write('Hello world!', interval=0.25) 
                              # 0.25秒かけて、Hello world!と入力する。
pyautogui.press('esc')        # escキーを押す。
pyautogui.keyDown('shift')    # shiftキーを押したままにする。
pyautogui.keyUp('shift')      # shiftキーの押したままを止める。
pyautogui.hotkey('ctrl', 'c') # ctrl + c を押す。

 

メッセージボックスを表示する。

Pythonのプログラムで、メッセージボックスを表示させることができます。
警告、確認、入力、非表示入力のメッセージボックスが使えます。

import pyautogui     # pyautoguiパッケージを読み込む。

pyautogui.alert('警告メッセージボックス:')

pyautogui.confirm('確認メッセージボックス:')
pyautogui.confirm('選択肢から選んでください。:', buttons=['A', 'B', 'C'])

pyautogui.prompt('値を入力してください。:')

pyautogui.password('パスワードを入力してください。(テキストは隠されます):')

 

スクリーンショットをとる。

Pythonのプログラムで、スクリーンショットをとることができます。
2種類の書き方ができますが、書き方2は1行で、シンプルに書けるのでよく使います。

import pyautogui     # pyautoguiパッケージを読み込む。

# 書き方1 
ss1 = pyautogui.screenshot()  # スクリーンショットを取得する。
ss1.save('screenshot1.png')   # 指定したファイル名で保存する。

# 書き方2 
ss2 = pyautogui.screenshot('screenshot2.png') 
                              # スクリーンショットをしたファイル名で保存する。

 

画像データの位置を検出する。

保存しておいた画像データ(AAA.png)の画面上の座標(左位置、上位置、横の長さ、縦の長さ)を検出することができます。 

マウス操作と組み合わせることで、画像データを見つけて、クリックする操作ができます。

import pyautogui     # pyautoguiパッケージを読み込む。

# 画像データ(AAA.png)の中心座標をクリックする。
# 書き方1
img_location = pyautogui.locateOnScreen('AAA.png')  
                     # 画像データ(AAA.png)の座標(left, top, width,
                     # height)を取得する。
img_x, img_y = pyautogui.center(img_location)
                     # 画像データの中心座標を取得する。
pyautogui.click(img_x, img_y)    # 指定の座標をクリックする。

# 書き方2
img_x, img_y = pyautogui.locateCenterOnScreen('AAA.png') 
pyautogui.click(img_x, img_y)    # 指定の座標をクリックする。

 

EXCELファイルの編集

openpyxlというパッケージを使うことで、EXCELファイルの操作を行うことができます。
たくさんのファイルに同じ操作する場合には、とても便利です。

 

便利と感じたこと

 複数のEXCELファイルに対して、同じ操作をしたい場合に便利です。

 

難しいと感じたこと

 EXCELの全ての機能は使えない。
 ただし、EXCELであらかじめサンプルファイルを作成し、入力ファイルの必要な値をコピーして使用するなど、工夫で対応はできます。

 

 

openpyxlパッケージで、できること。

具体的には、次のことができます。

セルの書式設定

 罫線の設定

 背景色の設定

 

行、列の非表示設定:

 非表示としたい行、列を指定できます。

 

データの入力制限:

 セルの入力制限(リスト形式)などが設定できるため、便利な機能です。

 

EXCEL関数の設定:関数を指定のセルに設定することができます。

 別のセル値を参照して、値を編集するなどの、セルに関数を追加したい場合に便利です。

 

保護:パスワード付きのシート保護、指定セルの入力可能設定ができます。

 複数のEXCELファイルを提供したいが、変更を制限したい場合に使える機能です。

タイトルとURLをコピーしました