Clibor、便利だわ~。もう大好き。
今回はこんなコードをご紹介。私が作った。えへ。
まあProの方々から見れば、全然大した頃は無いのでしょうが。
# -*- coding: utf-8 -*- #<$C_CLB_PYTHON/> import win32api import win32com.client import win32clipboard as CB # win32api.Sleep(200) shell = win32com.client.Dispatch("WScript.Shell") # CB.OpenClipboard() CB.EmptyClipboard() CB.CloseClipboard() shell.SendKeys("^c") # win32api.Sleep(200) shell.SendKeys("%{TAB}") win32api.Sleep(200) shell.SendKeys("^a") win32api.Sleep(200) shell.SendKeys("^v") win32api.Sleep(200) shell.SendKeys("{ENTER}")
これでもって何ができるかというと。
例えば、Windowsでウィンドウを2枚開いているとして、片方はExcelで作ったID一覧、もう片方は業務システムのID検索フォームとする。
Excelのアクティブセルのデータを、Cliborでコピペして、Pythonに渡し、PythonのSendkeysでウィンドの切り替えと、フォームのテキストボックスの全選択と、それを上書きする形での貼付け、そしてEnterキーの動作といった、一連の操作をしてくれる。
私の仕事では、毎日上記の操作をキーボードだけで、20回-30回やっているので、指が疲れる。
このマクロで、少し楽になるかな。
Cliborの作者さま、そしてPythonに感謝。
追記:改良版2018/02/26(月)
最初に、ウィンドウを切り替えるのと、カーソルキーで一つ行を下げる動作を追加した。また、切り替えが早いからか自分の環境ではおかしなことが起こるときがあったので300ミリ秒単位にしてみた。さらにALT+1キーのショートカットキーで実行するようにした。
# Alt + 1 で実行 # -*- coding: utf-8 -*- #<$C_CLB_PYTHON/> import win32api import win32com.client import win32clipboard as CB # win32api.Sleep(300) shell = win32com.client.Dispatch("WScript.Shell") # win32api.Sleep(300) shell.SendKeys("%{TAB}") win32api.Sleep(300) shell.SendKeys("{DOWN}") # CB.OpenClipboard() CB.EmptyClipboard() CB.CloseClipboard() shell.SendKeys("^c") # win32api.Sleep(300) shell.SendKeys("%{TAB}") win32api.Sleep(300) shell.SendKeys("^a") win32api.Sleep(300) shell.SendKeys("^v") win32api.Sleep(300) shell.SendKeys("{ENTER}")