[[20170622111937]] 『PrintScreenキーをFunctionキーに割り当てたい』(リーマン25) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『PrintScreenキーをFunctionキーに割り当てたい』(リーマン25)

マクロの入った「tool.xlsm」があり、通常の作業時はこのブックを
開いている状態で別のブック(マクロなし)からマクロを実行させています。
作業の一環で、アクティブウィンドウのキャプチャを貼り付ける、という
作業があるのですが、アクティブウィンドウのキャプチャには
[Alt]+[PrintScreen]を行わなければなりません。
2つのキーを押さなければいけないので若干ではありますが
手間がかかります。

作業ペースを上げるためこの[tool.xlsm]を開いている間は
たとえば[F1]キーに[Alt]+[PrintScreen]の機能を割り当てることは
できますでしょうか?

ちなみにキャプチャを撮るのはexcel以外のアプリケーションです。
また、会社の規定によりフリーツール等は入れられません。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


Excel標準機能で実現しようとすると、例えばUserFormを作成し、これにボタンを配置。ボタンのAcceleratorプロパティに A とか指定しておけば、ALT+A キーでボタンが押せますので、ここに SendKeys を仕込む、とか考えられますが…。

この機能は、ALTと特定のキーを同時押ししなければならないし、UserFormを起動しておかないとならないし、どう考えても標準機能の ALT+PRINTSCREENキーより使い勝手が悪いです。 所詮は表計算アプリですから、キー入力に対して凝ったことはできないのです。 諦めて、素直に ALT+PRINTSCREEN を押下することをお薦めします。

また、ツールならば、WINDOWS7に標準で付属している、Snipping Tool というのもありますよ。
(???) 2017/06/22(木) 17:43


リボンに追加し、マクロ起動させて、そこで Sendkeys する、という手が使えるかも知れません。が、リボンになってからのユーザー定義ボタンは、1階層下がってしまうので、使いにくいんですよねぇ。
(???) 2017/06/22(木) 17:47

 プリントスクリーンはセンドキーで送れなかったと記憶していますが・・・
(稲葉) 2017/06/22(木) 19:22

 そもそも他のアプリケーションをアクティブにした状態でEXCELのマクロを実行させられるのだろうか?
 (EXCELをアクティブにせずに)
(ねむねむ) 2017/06/22(木) 19:27

ファンクションキーにマクロを割り当てるのは、Application.OnKey で可能です。

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.