【Excel】【VBA】エビデンス作成を効率化!連続スクショ貼り付けの手間をマクロで削減


はじめに

Webアプリのテストなどで、スクショを何枚も撮ってエクセルに貼り付けないといけないことがあります。
その時、一枚撮って貼り付けたあと、次に貼り付けるセルを毎回選択するのがすごい面倒。

  • マウスの操作を極める。
    論外。というか、なるべくマウスを握りたくない。

  • 画像の大きさを調整し、[Esc]→[Page Down]で次に貼り付けるセルに移動できるようにする。
    フリーのスクショツール(例えばWinShot)を使って、毎回同じ範囲を撮ることができます。
    その範囲の大きさを指定してあげれば、[Page Down]押下時のスクロール量に合わせることができます。
    でも、撮りたい画像がいつも同じ範囲とは限りません。

標準機能で程よい解決方法が見つからなかったので、マクロを登録しショートカットキーに割り当てることにしました。

マクロ

要件は「貼り付けと同時に、次に貼り付ける場所にフォーカスを当てる」動きです。

画像の左下から3行下にフォーカスを当て、そのセルが一番上に来るようにスクロールした後、画面の縦の長さの半分だけスクロールを戻しています。
スクロール位置を調整することで、今貼り付けた画像とその下の部分を同時に見れるようにしています。
画像が正しく撮れているかの確認と、次に貼り付ける部分が正しいかの確認ができます。

具体的なコードは以下。

Sub AttatchImage()

    '画像をクリップボードにコピーしている状態で実行。
    '画像貼り付け後、画像の3行下のセルにフォーカスが当たる。

    'クリップボードの画像を貼り付け
    ActiveSheet.Paste
    '「画像の右下のセル」の行の3行下、「画像の左上のセル」の列に移動
    Cells(Selection.BottomRightCell.Row + 3, Selection.TopLeftCell.Column).Select
    '画面の高さの半分をスクロール
    ActiveWindow.ScrollRow = ActiveCell.Row - ActiveWindow.VisibleRange.Rows.Count / 2

End Sub

マクロを登録したら、任意のショートカットに紐づけて終わりです。
私は[Ctrl]+[Shift]+[V]にしました。
(GmailやEvernoteでは「形式をはずして貼り付け」を意味するので、混乱しないように違うキーがいいかもしれません。)

エビデンスファイルとは別に、マクロを仕込んだファイルを一つ用意しておくのがいいと思います。
違うブックのマクロを実行することができるので、エビデンスファイルにマクロを仕込む必要はありません。
マクロを使いたいときに、エビデンスファイルだけでなくマクロを仕込んだファイルも開いておくようにします。

操作方法

画像をクリップボードにコピーした状態で、貼り付けたいセルを選択します。
その状態で、ショートカットキーを押下。
すると、画像下端の3行下のセルにフォーカスが当たり、かつそのセルが画面中央にスクロールされます。
これですぐに次の画像が貼り付けられます。

注意点

マクロで行われた操作は「戻る」ことができないので注意です。
手順が固まった作業で使うことをお勧めします。