[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『PrintScreenキーをFunctionキーに割り当てたい』(リーマン25)
マクロの入った「tool.xlsm」があり、通常の作業時はこのブックを
開いている状態で別のブック(マクロなし)からマクロを実行させています。
作業の一環で、アクティブウィンドウのキャプチャを貼り付ける、という
作業があるのですが、アクティブウィンドウのキャプチャには
[Alt]+[PrintScreen]を行わなければなりません。
2つのキーを押さなければいけないので若干ではありますが
手間がかかります。
作業ペースを上げるためこの[tool.xlsm]を開いている間は
たとえば[F1]キーに[Alt]+[PrintScreen]の機能を割り当てることは
できますでしょうか?
ちなみにキャプチャを撮るのはexcel以外のアプリケーションです。
また、会社の規定によりフリーツール等は入れられません。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
この機能は、ALTと特定のキーを同時押ししなければならないし、UserFormを起動しておかないとならないし、どう考えても標準機能の ALT+PRINTSCREENキーより使い勝手が悪いです。 所詮は表計算アプリですから、キー入力に対して凝ったことはできないのです。 諦めて、素直に ALT+PRINTSCREEN を押下することをお薦めします。
また、ツールならば、WINDOWS7に標準で付属している、Snipping Tool というのもありますよ。
(???) 2017/06/22(木) 17:43
プリントスクリーンはセンドキーで送れなかったと記憶していますが・・・ (稲葉) 2017/06/22(木) 19:22
そもそも他のアプリケーションをアクティブにした状態でEXCELのマクロを実行させられるのだろうか? (EXCELをアクティブにせずに) (ねむねむ) 2017/06/22(木) 19:27
Private Sub Workbook_Open()
'F1キーに「test」というマクロを割り当て Application.OnKey "{F1}", "test" End Sub
SendKeys のヘルプには、
Sendkeys でアプリケーションに PrintScreen キー {PRTSC} を送信することはできません。
との記述があります。
SendKeys ステートメント
https://msdn.microsoft.com/ja-jp/library/office/gg278655%28v=office.15%29.aspx?f=255&MSPPError=-2147217396
APIの keybd_event を使う必要があります。
Excel VBA を学ぶなら moug モーグ | 即効テクニック | 画面をキャプチャする
https://www.moug.net/tech/exvba/0150121.html
他にも、APIを使ってキャプチャーする方法が検索すれば見つかる。
VBAでスクリーンキャプチャ(画面キャプチャ) API使ってファイルに保存版 - shikaku's blog
http://blog.systemjp.net/entry/2014/04/15/142736
他のアプリケーションをアクティブにするには、AppActivate が使えます。
Office TANAKA - Excel VBAステートメント[AppActivateステートメント]
http://officetanaka.net/excel/vba/statement/AppActivate.htm
これらを組み合わせればどうでしょうか。
(hatena) 2017/06/22(木) 22:41
キャプチャを撮るアプリはAppActiveではなぜかエラーを
はかれてしましましたので、wordのtaskを使用して一旦
開いているすべてのアプリを取得してから取得したアプリ名で
アクティブにするアプリの判定することにしました。
hatenaさんにご提示いただいたキャプチャして保存も
できましたが、やっているうちにF1キーに割り当てしなくても
目的が達成できそうな気がしてきました。
もう少しやりこんでみます。
(リーマン25) 2017/06/23(金) 08:49
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.