IT仕事

Cliborのマクロでウィンドウ操作&コピペを楽にする

投稿日:2018年2月23日 更新日:

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}")

-IT仕事

執筆者:

関連記事

no image

GWも出勤をしている企業戦士とはオレのことだ

出勤はしていても、「仕事はしない、勉強をする」と決めた今日は、 http://www.moug.net/tech/exvba/ のサイトで学習三昧。今度この手の仕事があるから。 関数関連のテクニックま …

no image

ExcelVBAでグラフのサイズやフォント種類を変更

秀吉というアンケートソフトで作ったExcelのグラフを、マクロを使って色々変えようと。 たくさんあるのでExcel2013のVBAで、グラフサイズとともにフォントサイズとフォント種類を変更しようとした …

no image

desknet’s neo

会社で使っているスケジュール管理サービスなのだが、このたびdesknet’s からdesknet’s neoにバージョンアップした。 スマートフォン対応というのに惹かれたのだが …

no image

速いパソコン? いらん

「だっておわっちゃ、速過ぎるとついていけんもんに」 PCセミナー受講生の名言。

no image

LimeSurvey2.0メモ

・トークンデータのCSVインポート1万件にかかった時間は2分。トークン生成も同じくらいの時間がかかる。 ・インポート時に「日本語 SJIS」指定しないと、姓名が表示されなかった。 ・JSの実行がFFだ …