Windowsでスクリーンショットのショートカットキーと保存先を変更する【AutoHotkey】
Windowsでスクリーンショットを撮る際のショートカットキーの変更方法、スクリーンショットの保存先・保存ファイル名の変更方法を解説します。
ここでは全画面スクリーンショットとアクティブウィンドウのスクリーンショットの設定変更方法を紹介します。
ショートカットの変更にはAutoHotkeyというソフトを使用します。
全画面スクショは他にソフトを使用せずに設定できますが、アクティブウィンドウのスクショにはOne DriveかXbox Game Barがインストールされている必要があります。両方ともデフォルトでWindowsにインストールされていることが多いと思いますが、持っていない場合はインストールする必要があります。
(他のソフトをインストールせずにAutoHotkeyのみでアクティブウィンドウスクショを行う方法は分かりませんでした。ご存知の方がいらっしゃればコメントで教えていただきたいです。範囲選択スクショの方法もわからずです。)
以下、私の使用環境とソフトウェアバージョンです。私はショートカットキーにCapsLockを使用しているのですが、その場合はChange Keyというソフトもインストールする必要があります(別記事参照)。
- Windows10
- AutoHotkey v2.0.2
- OneDrive v19.23.19.0
- Xbox Game Bar v5.823.3261.0
目次
- 目次
- 1. 必要なソフトのインストール
- 2. AutoHotkey でのショートカットキー割り当て
- 3. OneDriveを使用する場合の準備
- 4-1. 全画面スクリーンショットのスクリプト
- 4-2. アクティブウィンドウのスクリーンショットのスクリプト
- 4. 設定を維持する
- 関連記事
1. 必要なソフトのインストール
CapsLockキーをショートカットキーに使用する場合
別記事を参照して Lhaplus, Change Key をインストール、「2. Change Key でのキー割り当て変更」を済ませておいてください。
AutoHotkey
AutoHotkey
「Download」をクリック→「Download v2.0」をクリック
でダウンロードできます。
OneDrive もしくは Xbox Game Bar
アクティブウィンドウのスクショ保存を設定する場合はどちらかをインストールしておいてください。
2. AutoHotkey でのショートカットキー割り当て
AutoHotkeyの使用手順です。
- AutoHotkeyのスクリプトを格納するフォルダで右クリック
- 「新規作成」
- 「AutoHotkey Script」
- ファイル名を入力して「Empty」をクリック
- 「Edit」をクリック
- テキストエディタで次項で記載するスクリプトを貼り付け
- 保存
- 作成した.ahkファイルをダブルクリックして実行
2回目以降は警告のポップアップが出ますが、「はい」をクリックすれば実行できます。
3. OneDriveを使用する場合の準備
OneDriveをインストールしてある場合、
[PrintScreen] で全画面スクショを
[Alt] + [PrintScreen] でアクティブウィンドウスクショを
OneDriveのScreenShotフォルダに自動で保存することができるので、この設定をしておきます。
ちなみに、OneDriveの設定をしない場合、上記のショートカットキーはクリップボードにスクショ画像をコピーする操作になります。
設定手順
- OneDriveの設定を開く
- 「作成したスクリーンショットを OneDrive に保存する」をオンにする
4-1. 全画面スクリーンショットのスクリプト
OneDriveを使用する場合
私の場合、CapsLock + 3 で全画面スクショを保存するように設定しています。
CapsLock をF13キーに置き換えているため、「F13 & 3」となっています。
キーを変更したい場合はクイックリファレンスを参照してください。
キー(キーボード、マウス、ジョイスティック)一覧|AutoHotkey v2
スクショは一旦、ScreenShotフォルダに「yyyy-MM-dd.png」形式で保存されます。それを保存したいフォルダに移動しています。
簡単な流れは次の通りです。(2023/6/1 12:34:56 に実行した想定)
CapsLock + 3 キーが押される
→実行日と同じ日に手動で既に保存済みのスクショ画像 yyyy-MM-dd.png (例えば、2023-06-01.png) があれば "ScreenShot/_"フォルダに退避
→ "yyMM" (例えば 2306) フォルダを作成
→ [PrintScreen]キーが押される
→ yyyy-MM-dd.png が保存される (2秒待機)
→ 保存された画像を "yyMM / ScreenShot_yyMMdd_HHmmss.png" (2306 / ScreenShot_230601_123456.png) に保存
以下、スクリプトになりますが「;」以降はコメントのため消して構いません。
[user_name] はユーザ名を入力して、その他、保存ファイル名や保存先フォルダも適宜変更して使用してください。
ちなみに、特に保存先のフォルダ名やファイル名を変更しないのであれば、
F13 & 3:: Send "{PrintScreen}"
のように、1行で構いません。
;------------------------------------ ; スクショ保存(全画面) ;------------------------------------ F13 & 3:: { user_dir := "C:\Users\[user_name]\" screenshot_dir := user_dir "OneDrive\Picture\ScreenShot\" yymm := FormatTime(,"yyMM") ;2306 file_name := "ScreenShot_" FormatTime(,"yyMMdd_HHmmss") ".png" ;保存ファイル名 yymm_dir := screenshot_dir yymm png_path := yymm_dir "\" file_name ;保存先フォルダ if not DirExist(yymm_dir) { ;MsgBox "not exist" DirCreate yymm_dir } ;src_file := screenshot_dir "スクリーンショット *.png" ;<OneDrive不使用> src_file := screenshot_dir FormatTime(,"yyyy-MM-dd") "*.png" drop_dir := screenshot_dir "_\" FileMove src_file, drop_dir ;Send "#{PrintScreen}" ;<OneDrive不使用> Send "{PrintScreen}" Sleep 2000 FileMove src_file, png_path Return }
OneDriveを使用しない場合
[Win] + [PrintScreen] で全画面スクショを保存する方法を使っています。
上記のOneDriveを使用する場合のスクリプトの
2ヶ所ある
直後の1行を削除してください。
4-2. アクティブウィンドウのスクリーンショットのスクリプト
OneDriveを使用する場合
CapsLock + 4 でスクショを撮るように設定しています。
全画面の場合と同様ですが、[Alt] + [PrintScreen] でScreenShotフォルダに保存された画像を指定したフォルダ・ファイル名で移動しています。
;------------------------------------ ; スクショ保存(アクティブウィンドウ) ;------------------------------------ F13 & 4:: { user_dir := "C:\Users\[user_name]\" screenshot_dir := user_dir "OneDrive\Picture\ScreenShot\" yymm := FormatTime(,"yyMM") ;2306 file_name := "ScreenShot_" FormatTime(,"yyMMdd_HHmmss") ".png" yymm_dir := screenshot_dir yymm dst_file := yymm_dir "\" file_name if not DirExist(yymm_dir) { ;MsgBox "not exist" DirCreate yymm_dir } src_file := screenshot_dir FormatTime(,"yyyy-MM-dd") "*.png" drop_dir := screenshot_dir "_\" FileMove src_file, drop_dir Send "!{PrintScreen}" Sleep 2000 FileMove src_file, dst_file Return }
Xbox Game Bar を使用する場合
[Win] + [Alt] + [PrintScreen] を押すと
"C:\Users\[user_name]\Videos\Captures\"
にアクティブウィンドウのスクショが保存されます。
上記スクリプトを2点、修正してください。
①一時保存先ファイル名
src_file := screenshot_dir FormatTime(,"yyyy-MM-dd") "*.png"
↓
capture_dir := user_dir "Videos\Captures\" src_file := capture_dir "*.png"
②送信コマンド
Send "!{PrintScreen}"
↓
Send "#!{PrintScreen}"