業務効率を上げるには、同じ作業を機械に任せてしまうことが近道だと思います。ということで、今回はPythonを使って簡単な自動作業を解説しようと思います。
目次
1. 実行環境
今回実行した環境は以下の通りとなります。
Windows10
Office2016
Python3.7.6
保存ディレクトリパス:c:\py
・必要なライブラリ
今回は「pyautogui」を利用したプログラムを作るので、ライブラリをインストールしてしまいましょう。まず、コマンドプロンプトを立ち上げます。そこで、以下のコマンドを実行すればインストール作業は完了です。
pip install pyautogui
2. 実行してみる
では早速インストールしたライブラリを使って簡単な動作をさせてみましょう。以下のコードを「test01.py」として保存、保存したファイルをダブルクリックして実行します。
注意:ファイルは文字コード「UTF-8」として保存してください。
# encoding: utf-8
import pyautogui as pg
import time
#Excelを立ち上げる
pg.hotkey("win"),time.sleep(3),pg.write("excel"),pg.hotkey("enter")
time.sleep(3)
#新しいシートを開く
pg.hotkey("enter")
time.sleep(3)
#文字を入力する
pg.hotkey("kanji")
pg.write("hyahha-!"),pg.hotkey("enter")
time.sleep(3)
#シートを閉じる
pg.hotkey("alt","f4")
pg.hotkey("tab"),pg.hotkey("tab"),pg.hotkey("tab"),pg.hotkey("tab"),pg.hotkey("tab"),pg.hotkey("space")
これは単純にExcelを一度開いて文字「ひゃっはー!」を入力、保存せずに終了といった指示になります。
使い方は慣れてしまえばどこに何を配置するかなど、難しいものではないと思います。
次に以下流れ作業を、番号に沿って自動でやらせるコードを実行してみましょう。
・自動で動いてもらう内容
①Windowsボタンを押してもらう
②Excelファイルを新規に開いてもらう
③各セルにデータを入力・保存してもらう
④jupyter notebookを開いてもらう
⑤先ほど保存したファイルをpandasを使って読み込んでもらう
※pandasとはpythonのライブラリでExcelファイルを読み込むために利用します
早速以下コードを作成してみたので、一つづつ説明文を読みながらどこで何をしているかを確認してみてください。以下のコードも「test02.py」として保存してからダブルクリックして実行します。
# encoding: UTF-8
#必要なライブラリをここでインポート
import pyautogui as pg
import pandas as pd
import time
#関数をここで定義
#tabキー操作用
def tab(a):
for i in range(a):
pg.hotkey("tab")
time.sleep(0.5)
#キー押下操作用
def key(b,d=""):
pg.hotkey(b,d)
time.sleep(0.5)
#キー入力用
def wt(c):
pg.write(c)
time.sleep(0.5)
#Excelを立ち上げる
key("win"),wt("excel"),key("enter")
time.sleep(5)
#新しいシートを開く
key("enter")
#データを入力する
wt("name"),key("tab"),wt("age"),key("tab"),wt("sex"),key("enter")
wt("aoshima"),key("tab"),wt("1"),key("tab"),wt("male")
time.sleep(1)
#ファイルを保存する
key("ctrl","s")
wt("test"),key("tab"),key("space"),key("down"),key("down"),key("down"),key("down")
key("enter"),key("tab"),key("space"),key("down"),key("down"),key("enter")
tab(2),key("enter"),key("space")
#jupyter notebookを開く
key("win"),wt("cmd"),key("enter"),wt("jupyter-notebook"),key("enter")
time.sleep(10)
tab(8),key("space"),key("down"),key("enter")
time.sleep(3)
#pandasで読み込む
wt("import pandas as pd")
key("enter")
wt('pd.read_csv("c:\\py\\test.csv")')
key("shift","enter")
pg.writeでは、「:」が「*」として表示されてしまうので、以下の対策を実行します。
pythonインストールフォルダ配下にある「_pyautogui_win.py」の274行目に以下赤字を追記。
標準でインストールしていれば、
「C:\Users\【ユーザ名】\AppData\Local\Programs\Python\Python38\Lib\site-packages\pyautogui」
配下にあります。
needsShift = pyautogui.isShiftCharacter(key) if key == ':': needsShift = False
プログラム実行後、以下の通り表示されればすべて実行OKであったことになります。

3. まとめ
なんだか「自動」という感じがしないと思われるかもしれませんが、基本操作となるので「こんな感じでいいんだな」と少しでもつかんでもらえたら幸いです。
今回は「pyautogui」の操作を慣れるという意味で関数など複雑な操作は実施しない内容としました。次回はこれらを応用して、少し複雑な作業を実行できたらなと思います。
最後まで読んでいただき、ありがとうございました。