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

突然Windows10でBiND7が起動しなくなった

2016の新年が明けて、久々にBiND7を起動しようとしたが、オープニング画面は出るのだが本体が現れないというトラブルに遭遇した。 変だなーと思ってメーカーのWebをチェックしてみたのだが、新たな情報 …

no image

アンケートフォームからチェックボックスとオプションボタンのテキスト文字を取り出してテキストファイルに出すためのコード

アンケートフォームからチェックボックスとオプションボタンのテキスト文字を取り出してテキストファイルに出すためのコードを作成。 出力されるコードは、そのチェックボックス等を作成した順番に出力されるため、 …

no image

hostingrails.com

知り合いがHPを作ってくれというので、どこかのサーバを借りることにした。 いろいろ検討した結果、hostingrails.comというところにした。 このレンサバはその名の通り、Railsで作ったWe …

no image

Googleドキュメントのスプレッドシートのリンク

Googleドキュメントのスプレッドシートで、あるセルからWebサイトにリンクを張ろうとしたのだが、メニューにコマンドがない。 ・・・と思ったら、数式の関数で指定するんだね、 =HYPERLINK(& …

no image

PSPでスライスツール

以前に覚えたのだがいざ使う段になると忘れていた昨日。なのでメモ。 1.Photoshopでガイドラインを引く。 2.スライスツールを選択し、ガイドラインの角から対角線を引くように選択。 3.続けて切り …