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

お客さんのWebショップ

管理しているお客さんのショップWebサイト。 ハッキリいって、儲かっていない。 5月末に立ち上げて未だ購買数ゼロ。 まあ、商品点数が十点少々しかないのが一番の原因なのだが。 昨日はそれで色々調査。 そ …

秀丸エクスプローラClassicをブックマークが開いた状態で起動したい

Googleを検索したら、誰もブログにやり方を書いていないみたい。 中途半端に面倒で、かつ中途半端に簡易だからだろう。 よって私が。 1.秀丸エクスプローラClassicのパスを調べておく。私の場合は …

no image

FabricJSについて調べてみた。

ベースは、こちらのブログで公開されていたコード。深く感謝! Fabric.jsを使ってLGTM画像を作る | KRAY Inc ページ下にあるリポジトリよりファイルをダウンロードさせていただき、先日イ …

no image

Amazonツール注文情報取得シートでListOrderで想定しない値エラー

会社では商品をAmazonでセラーとして販売している。 宅急便の伝票を作るときに注文情報(ListOrders)をExcelでCSVで出力できないかなあと、何かのツールを探していて、以下にたどり着いた …

no image

Visual Studio 2005 Express Edition無償公開

窓の杜 – 【NEWS】「Visual Studio 2005 Express Edition」日本語正式版の一般向け無償公開開始 http://www.forest.impress.co …