この記事では、自動でスクリーンショット(スクショ)が撮れるバッチファイルを紹介します。
このバッチファイルは、この記事の後半にあるコードをメモ帳にコピペするだけで誰でも簡単に作れます。
このバッチファイルの概要を以下にイラストで示します。

バッチファイルを実行するだけで瞬時に画面全体のスクショが撮れます

バッチファイルの使い方
このバッチファイルの使い方は簡単です。
スクショを撮りたいタイミングでバッチファイルを実行します

バッチファイルをダブルクリックして実行します。
デスクトップ上のスクショファイルを確認します
バッチファイル実行時に画面全体のスクショ画像ファイル(JPEGまたはPNG)がデスクトップ上に自動作成されます。
同時に、クリップボードにも画像データがコピーされますので、「貼り付け」で、さまざまなアプリにスクショ画像を貼り付け可能です。
使い方の説明は以上です。

シンプルですね!
はい、ただバッチファイルをダブルクリックするだけです

より便利な使い方
このバッチファイルには、1点だけ難点があります。
それは、バッチファイルをクリックするには、「バッチファイルのある場所をパソコン画面に表示させる必要がある」という点です。
これでは、バッチファイルを実行すると、バッチファイルのある場所もスクショされてしまいます。
これを回避するには、以下のようにして、バッチファイルのショートカットをタスクバーに登録しておきます。
バッチファイルのショートカットをタスクバーに登録する方法
Windows11では、バッチファイルをタスクバーにただドラッグアンドドロップしても、以下のイラストのように禁止マークが出て、ショートカットをタスクバーに登録できません。

そこで、以下の方法が有効です。
step
1バッチファイルを好きな場所に配置します
バッチファイルを好きな場所に配置します。

デスクトップ上でも、フォルダの中でもかまいません。
その場所をバッチファイルの保存場所に決めて、以後は動かさないようにします。
step
2バッチファイルのショートカットを作成します
以下の手順でバッチファイルのショートカットを作成します。
①バッチファイルの上で右クリック
②「その他のオプション」を選択

③「ショートカットを作成」を選択

「ショートカットを作成」を選択すると、その場所にバッチファイルのショートカットファイルができます。
④ショートカットの上で右クリック
⑤「プロパティ」を選択

⑥リンク先の項目のアドレスの先頭に以下の文字列を追加します
explorer.exe
上の文字列の最後に半角スペースを付け加えてください

「explorer.exe」+ 半角スペースを先頭に付け加えてから、「OK」ボタンを押して保存します。

「OK」ボタンを押すと以下のようにアイコンが変化します。

⑦ショートカットをタスクバーにドラッグアンドドロップします

ドラッグアンドドロップすると、以下のようにショートカットができます。

ショートカットをタスクバーにピン留めした後は、ショートカットファイルを消してもかまいません(元のバッチファイルは消さないでください。

スクショが撮りたくなったら、このショートカットをクリックすればいいのですね!
その通りです!


これでいつでも簡単にスクショが撮れますね!
スクショファイルの作成と同時に、クリップボードにも画像データがコピーされますので、必要に応じて利用してみてくださいね!

・ショートカットの元になるバッチファイルを移動させた場合は、ピン留めしてあるショートカットを削除後に、上記の方法で再度ショートカットを作って、タスクバーにピン留めしてください。
・タスクバー上のショートカットは、右クリックして「タスクバーからピン留めを外す」を選ぶと削除できます(ショートカットが削除されるだけで、元のバッチファイルは残ります)
・ピン留めしたショートカットは左クリックしながら左右に動かしてタスクバー上の位置を変えることができます。
バッチファイル自体の作り方は、以下の通りです。
バッチファイルの作り方(コード)
このバッチファイルの作り方はシンプルです。
別の記事で紹介した「バッチファイルの作成方法」の手順3で、以下のコードをメモ帳に貼り付けるだけです。
バッチファイルの名前は何でもかまいません。
以下のコードを使用すると、JPEGファイルとしてスクショ画像がデスクトップ上に作成されます(PNGファイルをご希望の方は、以下のコードの下にある次のコードを使ってください)。
@echo off
setlocal enabledelayedexpansion
:: V01L01J
:: 一時的なPowerShellスクリプトファイルを作成
set "tempScript=%TEMP%\screenshot_%RANDOM%.ps1"
:: PowerShellスクリプトの内容を作成
(
echo # 画面キャプチャ用スクリプト
echo Start-Sleep -Milliseconds 500
echo Add-Type -AssemblyName System.Windows.Forms
echo Add-Type -AssemblyName System.Drawing
echo $screen = [System.Windows.Forms.Screen]::PrimaryScreen
echo $bitmap = New-Object System.Drawing.Bitmap $screen.Bounds.Width, $screen.Bounds.Height
echo $graphics = [System.Drawing.Graphics]::FromImage($bitmap^)
echo $graphics.CopyFromScreen($screen.Bounds.X, $screen.Bounds.Y, 0, 0, $bitmap.Size^)
echo $timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
echo $path = [Environment]::GetFolderPath("Desktop"^)
echo $file = "$path\screenshot_$timestamp.jpeg"
echo $bitmap.Save($file, [System.Drawing.Imaging.ImageFormat]::Jpeg^)
echo [System.Windows.Forms.Clipboard]::SetImage($bitmap^)
echo $graphics.Dispose(^)
echo $bitmap.Dispose(^)
echo [System.Windows.Forms.MessageBox]::Show("スクリーンショットがデスクトップ上に保存されました: $file", "完了", [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information^)
echo # 自分自身(スクリプト)を削除
echo Remove-Item -Path $MyInvocation.MyCommand.Path -Force
) > "%tempScript%"
:: スクリプトを実行
powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File "%tempScript%"
exit
以下のコードを使用すると、PNGファイルとしてスクショ画像がデスクトップ上に作成されます

@echo off
setlocal enabledelayedexpansion
:: V01L01P
:: 一時的なPowerShellスクリプトファイルを作成
set "tempScript=%TEMP%\screenshot_%RANDOM%.ps1"
:: PowerShellスクリプトの内容を作成
(
echo # 画面キャプチャ用スクリプト
echo Start-Sleep -Milliseconds 500
echo Add-Type -AssemblyName System.Windows.Forms
echo Add-Type -AssemblyName System.Drawing
echo $screen = [System.Windows.Forms.Screen]::PrimaryScreen
echo $bitmap = New-Object System.Drawing.Bitmap $screen.Bounds.Width, $screen.Bounds.Height
echo $graphics = [System.Drawing.Graphics]::FromImage($bitmap^)
echo $graphics.CopyFromScreen($screen.Bounds.X, $screen.Bounds.Y, 0, 0, $bitmap.Size^)
echo $timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
echo $path = [Environment]::GetFolderPath("Desktop"^)
echo $file = "$path\screenshot_$timestamp.png"
echo $bitmap.Save($file, [System.Drawing.Imaging.ImageFormat]::Png^)
echo [System.Windows.Forms.Clipboard]::SetImage($bitmap^)
echo $graphics.Dispose(^)
echo $bitmap.Dispose(^)
echo [System.Windows.Forms.MessageBox]::Show("スクリーンショットがデスクトップ上に保存されました: $file", "完了", [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information^)
echo # 自分自身(スクリプト)を削除
echo Remove-Item -Path $MyInvocation.MyCommand.Path -Force
) > "%tempScript%"
:: スクリプトを実行
powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File "%tempScript%"
exit
当ブログのバッチファイル一覧
以下は、このブログで紹介しているバッチファイルの一覧です。
コピペするだけで使えます

各バッチファイルの概要をイラストで見たい方は、こちらをご参照ください。
ファイル名の一括変更
拡張子の一括変更
ファイルの拡張子を一括で変更するバッチファイルはこちら
ファイル情報の取得
ショートカット整理
複数のショートカットを1つにまとめて整理するバッチファイルはこちら
ファイル整理
ファイルを種類ごとに自動でフォルダ分けするバッチファイルはこちら
データバックアップ
パソコンデータをミラーリングしてUSBメモリにバックアップするバッチファイルはこちら
スクリーンショット
自動でスクリーンショット(スクショ)が撮れるバッチファイルはこちら