<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" > <channel> <title>自動化 | Qwerty.work</title> <atom:link href="https://qwerty.work/blog2/archives/tag/%E8%87%AA%E5%8B%95%E5%8C%96/feed" rel="self" type="application/rss+xml" /> <link>https://qwerty.work/blog2</link> <description>パソコンに関することをいろいろメモしています。</description> <lastBuildDate>Thu, 12 Jan 2023 07:24:54 +0000</lastBuildDate> <language>ja</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>https://wordpress.org/?v=6.8.1</generator> <image> <url>https://qwerty.work/wp/wp-content/uploads/2022/11/cropped-favicon_QwertyWork-32x32.png</url> <title>自動化 | Qwerty.work</title> <link>https://qwerty.work/blog2</link> <width>32</width> <height>32</height> </image> <item> <title>【PyAutoGUI】PythonでWindowsのマウスとキーボードを操作する</title> <link>https://qwerty.work/blog2/archives/180</link> <dc:creator><![CDATA[postmaster]]></dc:creator> <pubDate>Wed, 11 Jan 2023 06:20:55 +0000</pubDate> <category><![CDATA[Python]]></category> <category><![CDATA[PyAutoGUI]]></category> <category><![CDATA[Windows自動化]]></category> <category><![CDATA[キー操作]]></category> <category><![CDATA[スクリプト]]></category> <category><![CDATA[マウス操作]]></category> <category><![CDATA[モジュール]]></category> <category><![CDATA[自動化]]></category> <guid isPermaLink="false">https://qwerty.work/blog2/?p=180</guid> <description><![CDATA[目次 特定のキーを繰り返して押す作業を自動化したいPyAutoGUIをインストールKeyboardモジュールも必要Python実行ファイルを用意pyファイルを実行pyファイルを直接実行したい場合コマンドプロンプトから実行 […]]]></description> <content:encoded><![CDATA[ <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label> <div class="toc-content"> <ol class="toc-list open"><li><a href="#toc1" tabindex="0">特定のキーを繰り返して押す作業を自動化したい</a></li><li><a href="#toc2" tabindex="0">PyAutoGUIをインストール</a></li><li><a href="#toc3" tabindex="0">Keyboardモジュールも必要</a></li><li><a href="#toc4" tabindex="0">Python実行ファイルを用意</a></li><li><a href="#toc5" tabindex="0">pyファイルを実行</a><ol><li><a href="#toc6" tabindex="0">pyファイルを直接実行したい場合</a></li><li><a href="#toc7" tabindex="0">コマンドプロンプトから実行したい場合</a></li><li><a href="#toc8" tabindex="0">処理を中断したいとき</a></li></ol></li><li><a href="#toc9" tabindex="0">Excelなどでも使えそう</a></li></ol> </div> </div> <h2><span id="toc1">特定のキーを繰り返して押す作業を自動化したい</span></h2> <p>Kintone(キントーン)のレコードの情報を更新するために、編集、保存、次への作業を最初のレコードから最後のレコードまで繰り返し行うことがありました。これをショートカットキーで行っていたのですが、レコード数が少なければ手動で問題ありませんが、これが数百とか数千以上あるとちょっと大変です。</p> <p>ちなみに、レコード詳細画面で<strong>「E」は編集モード</strong>、<strong>「Ctrl+S」が保存</strong>、<strong>「J」が次のレコードに移動</strong>を行うショートカットキーで、これを繰り返し連打していました。</p> <a rel="noopener" href="https://jp.cybozu.help/k/ja/trouble_shooting/general/shortcuts.html" title="https://jp.cybozu.help/k/ja/trouble_shooting/general/shortcuts.html" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fjp.cybozu.help%2Fk%2Fja%2Ftrouble_shooting%2Fgeneral%2Fshortcuts.html?w=160&h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://jp.cybozu.help/k/ja/trouble_shooting/general/shortcuts.html</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://jp.cybozu.help/k/ja/trouble_shooting/general/shortcuts.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">jp.cybozu.help</div></div></div></div></a> <p>キントーン側でJavascriptを使うやり方もあるかと思うのですが、初心者で無料体験中なので、どうやればいいかわからなかったので、VBScriptとか使ってWindows側からできないかな?と調べていたら<span class="marker-under">PythonとPyAutoGUIというモジュールを使ってできる</span>といったページを見つけたので、試すことにしました。</p> <p><iframe title="【PyAutoGUI】Pythonでマウスとキーボードを操作する - RAKUS Developers Blog | ラクス エンジニアブログ" src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Ftech-blog.rakus.co.jp%2Fentry%2F20220613%2Fpython%23PyAutoGUI%25E3%2581%25AE%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25BC%25E3%2583%25AB" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;"></iframe></p> <h2><span id="toc2">PyAutoGUIをインストール</span></h2> <p>WindowsにPythonがインストールされていることが前提ですが、その状態でコマンドプロンプトを起動し、PyAutoGUIをコマンドでインストールします。</p> <p>Pythonのバージョン確認するコマンド</p> <pre>python -v</pre> <p>PyAutoGUIをインストールするコマンド。</p> <pre class="code" data-lang="" data-unlink="">pip install pyautogui</pre> <p>pipはPythonのパッケージ管理ツールで、コマンドを実行すると、以下の画面が表示されます。</p> <p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-183" src="https://qwerty.work/wp/wp-content/uploads/2023/01/No-01.jpg" alt="PyAutoGUIインストール画面" width="614" height="478" srcset="https://qwerty.work/wp/wp-content/uploads/2023/01/No-01.jpg 614w, https://qwerty.work/wp/wp-content/uploads/2023/01/No-01-300x234.jpg 300w" sizes="(max-width: 614px) 100vw, 614px" /></p> <p>インストール完了時の表示。</p> <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-184" src="https://qwerty.work/wp/wp-content/uploads/2023/01/No-02.jpg" alt="PyAutoGUIインストール完了" width="614" height="478" srcset="https://qwerty.work/wp/wp-content/uploads/2023/01/No-02.jpg 614w, https://qwerty.work/wp/wp-content/uploads/2023/01/No-02-300x234.jpg 300w" sizes="(max-width: 614px) 100vw, 614px" /></p> <p>インストールされているPythonのパッケージとバージョンを確認するコマンド</p> <pre>pip list</pre> <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-185" src="https://qwerty.work/wp/wp-content/uploads/2023/01/No-03.jpg" alt="インストールされたパッケージの確認" width="614" height="478" srcset="https://qwerty.work/wp/wp-content/uploads/2023/01/No-03.jpg 614w, https://qwerty.work/wp/wp-content/uploads/2023/01/No-03-300x234.jpg 300w" sizes="(max-width: 614px) 100vw, 614px" /></p> <p>ここに<strong>PyAutoGUI</strong>があればOKです。</p> <h2><span id="toc3">Keyboardモジュールも必要</span></h2> <p>自動化処理を実行中に中断したい場合に備え、特定のキー押下で停止できるようにする場合、キーの押下を検出するために<strong>keyboardモジュール</strong>が必要です。PyAutoGUI同様にコマンドプロンプトからコマンドでインストールします。</p> <pre>pip install keyboard</pre> <h2><span id="toc4">Python実行ファイルを用意</span></h2> <p>以下のソースをテキストエディタで拡張子を<code>.py</code>にして適当な場所に保存します。</p> <pre> import pyautogui import keyboard import os # 一時停止 os.system('PAUSE') # 処理を実行するたびに1秒待機 pyautogui.PAUSE = 0.5 # 画面のサイズを取得 width, height = pyautogui.size() # 指定の位置にカーソルを移動 pyautogui.moveTo(100, 400, duration=2) # 現在のカーソルの位置で左クリックを1回 pyautogui.click(button="left") # 順番にキーを押す処理を繰り返す num = 0 end_num = 10 while num < end_num: if keyboard.is_pressed("shift"): print("SHIFTキーが押されたので中断します。") os.system('PAUSE') print(str(num+1)+"回目の処理を実行中です。(SHIFTキーで停止)") pyautogui.press("e") pyautogui.hotkey("ctrl", "s") pyautogui.press("j") num += 1 if num == end_num: print("処理が終わりました。同じ処理を繰り返しますか?") os.system('PAUSE') num = 0 continue print("処理が終わりました。") # 一時停止 os.system('PAUSE') </pre> <h2><span id="toc5">pyファイルを実行</span></h2> <h3><span id="toc6">pyファイルを直接実行したい場合</span></h3> <p>ファイルをダブルクリックします。</p> <p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-186" src="https://qwerty.work/wp/wp-content/uploads/2023/01/No-04.jpg" alt="Pythonスクリプト実行中の画面" width="641" height="497" srcset="https://qwerty.work/wp/wp-content/uploads/2023/01/No-04.jpg 641w, https://qwerty.work/wp/wp-content/uploads/2023/01/No-04-300x233.jpg 300w" sizes="(max-width: 641px) 100vw, 641px" /></p> <h3><span id="toc7">コマンドプロンプトから実行したい場合</span></h3> <p>コマンドプロンプトからpyファイルを呼び出せば、記載されたスクリプトが実行されます。例えば、<strong>test.py</strong>というファイルが<strong>Cドライブ直下</strong>にあったとしたら、以下のようになります。</p> <pre>python c:\test.py</pre> <h3><span id="toc8">処理を中断したいとき</span></h3> <p>誤った操作になってしまったときは、Pythonの画面でキーボードの<kbd>PAUSE</kbd>を押下すると一時停止。Python及びコマンドプロンプトで<kbd>Ctrl</kbd>+<kbd>Cを押すと終了させることができます。</kbd></p> <h2><span id="toc9">Excelなどでも使えそう</span></h2> <p>今回、Kintone(キントーン)上で繰り返しキー操作を行うためにこのスクリプトを使いましたが、Excel(エクセル)やWindows上で自動で繰り返し行いたい作業がある場合に使えそうです。</p> ]]></content:encoded> </item> </channel> </rss>