TECH MEDIA

テックメディア


ノウハウ
ブログ

RPAを使った業務の自動化に挑戦(前編)

RPA
目次
  1. 01|はじめに
  2. 02|PyAutoGuiとは
  3. 03|最後に

1. はじめに

皆さん、おはこんばんにちは! SIer出身のエンジニア、みやもとです。
最近はKaggleで機械学習を学んでいましたが、AI技術は機械学習以外にも種々ありほかの技術も触っておきたいと考え、今回はそのうちのRPAを使って業務の自動化を進めていきたいと思います。

最近は様々な企業がRPAツールなるものを出しており、NTTが出しているWinActorやUiPathが出しているUiPathというRPAツールが日本国内で最も使用されているRPAツールではないでしょうか 。このどちらかのツールを使用すれば簡単に業務の自動化を行うことが可能となります。ですが今回は、ただRPAを使用して業務の自動化を行うことが目的ではなく、今後はその技術を使用して製品に組み込むことを目標としています。そのため、RPAツールを使用せずに業務を自動化するツールを自作していこうと思います。

2. PyAutoGuiとは

PyAutoGUIとは、Pythonでマウスとキーボードを制御して、他のアプリケーションとの対話を自動化することができるパッケージです。自動化にはこのPyAutoGUIだけではなくSeleniumという同じPythonを使用した自動化方法もあります。このSeleniumは、同じw2の技術者である森君がすでに自動化について記事を書いているので、今回はPyAutoGUIを使って業務の自動化を行っていこうと思います。

インストール

コマンドプロンプトで下記のコマンドを実行するとPyAutoGUIをインストールできます。pipコマンドはpythonをインストールしておかないといけないので、実行する前にPythonがインストールされているか確認してください。

pip install PyAutoGUI<span aria-hidden="true" class="line-numbers-rows"><span></span></span>

サンプルコード実行

実際にPyAutoGUIに記載されているサンプルコードを実行したいと思います。
サンプルコードの処理としては、クリックしたままマウスが動いていく処理となっているので、ペイントを立ち上げてから実行すると下記のように勝手に四角が描画されるようになっています。

<span class="token keyword">import</span> pyautogui

distance <span class="token operator">=</span> <span class="token number">200</span>

<span class="token keyword">while</span> distance <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">:</span>
    pyautogui<span class="token punctuation">.</span>drag<span class="token punctuation">(</span>distance<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> duration<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">)</span>   <span class="token comment"># move right</span>
    distance <span class="token operator">-=</span> <span class="token number">5</span>
    pyautogui<span class="token punctuation">.</span>drag<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> distance<span class="token punctuation">,</span> duration<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">)</span>   <span class="token comment"># move down</span>
    pyautogui<span class="token punctuation">.</span>drag<span class="token punctuation">(</span><span class="token operator">-</span>distance<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> duration<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">)</span>  <span class="token comment"># move left</span>
    distance <span class="token operator">-=</span> <span class="token number">5</span>
    pyautogui<span class="token punctuation">.</span>drag<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token operator">-</span>distance<span class="token punctuation">,</span> duration<span class="token operator">=</span><span class="token number">0.5</span><span class="token punctuation">)</span>  <span class="token comment"># move up</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span>

3. 最後に

今回は短い記事となってしまいました。本来は前編と後編の二部構成にしようと考えていたのですが、如何せん自作のRPAツールを作るということもありどの技術を使おうか楽しみすぎて記事用のピクチャを取るのを忘れてしまいました。
そのため、この記事は前編、中編、後編の三部構成で行きたいと思います。中編ではElectronを使用してデスクトップアプリを作成していき、後編でPyAutoGUIとElectronを使ってRPAツールを作る様子を書いて行きたいと思います。

参考

PyAutoGUI’s documentation!

RECRUIT 採用情報

「eビジネスに関わる全ての人を幸せにする」
私達とともに新たな時代をつくりませんか?