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. 必要なソフトのインストール

CapsLockキーをショートカットキーに使用する場合

別記事を参照して Lhaplus, Change Key をインストール、「2. Change Key でのキー割り当て変更」を済ませておいてください。

AutoHotkey

AutoHotkey
「Download」をクリック→「Download v2.0」をクリック
でダウンロードできます。

OneDrive もしくは Xbox Game Bar

アクティブウィンドウのスクショ保存を設定する場合はどちらかをインストールしておいてください。

2. AutoHotkey でのショートカットキー割り当て

AutoHotkeyの使用手順です。

 2回目以降は警告のポップアップが出ますが、「はい」をクリックすれば実行できます。

3. OneDriveを使用する場合の準備

OneDriveをインストールしてある場合、
[PrintScreen] で全画面スクショを
[Alt] + [PrintScreen] でアクティブウィンドウスクショを
OneDriveのScreenShotフォルダに自動で保存することができるので、この設定をしておきます。

ちなみに、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}"

4. 設定を維持する

そのままではPCを起動する度に.ahkファイルを実行する必要があるため、起動時に自動実行するように設定します。

  • エクスプローラで.ahkファイルを右クリック → ショートカットの作成
  • Windowsキー + R で「ファイルを指定して実行」を開く
  • shell:startup → OK でスタートアップフォルダを開く
  • .ahkのショートカットファイルをスタートアップフォルダに移動する
  • 再起動