見出し画像

【ファイル付き】コピペで使えるExcelマクロ!選択した画像に合わせてExcelシート上の全画像を一括リサイズするマクロ

Excelで複数の画像を扱う際、各画像のサイズを統一するのは手間がかかる作業です。特に大量の画像がシート上に存在する場合、手動で調整するのは現実的ではありません。そこで活躍するのが、選択した画像のサイズに合わせてシート上の全画像を一括でリサイズするマクロです。
今回は、画像サイズを一括変換するマクロを紹介します。

Excelマクロの基本的な使い方は、下の記事を参考にしてください


1. マクロの概要

  1. 基準となる画像を選択
    ユーザーがリサイズの基準となる画像を選択します。選択された画像の幅と高さが取得されます。

  2. シート上の全画像をリサイズ
    アクティブなシート上に存在するすべての画像(Shapeオブジェクト)が、基準となる画像の幅と高さに変更されます。アスペクト比の固定を解除しているため、縦横比も統一されます。

  3. 完了メッセージの表示
    リサイズが完了すると、メッセージボックスで通知されます。

これにより、選択した画像に合わせてシート上の全ての画像を一括でリサイズでき、作業効率が大幅に向上します。

基準画像を選択して、ボタンをクリックする
シート上のすべての画像が同じサイズになる

2. コードの説明

以下が今回紹介するVBAコードです。ExcelのVBAエディタに貼り付けて使います。

Sub ResizeImagesToSelected()
    Dim ws As Worksheet
    Dim targetWidth As Double, targetHeight As Double
    Dim selectedImage As Shape
    Dim shp As Shape

    ' 選択されている画像を取得
    On Error Resume Next
    If TypeName(Selection) = "Nothing" Or Selection Is Nothing Then
        MsgBox "基準となる画像を選択してください。", vbExclamation, "エラー"
        Exit Sub
    End If

    If TypeName(Selection) = "Range" Then
        MsgBox "基準となる画像を選択してください。", vbExclamation, "エラー"
        Exit Sub
    End If

    Set selectedImage = ActiveSheet.Shapes(Application.Selection.Name)
    On Error GoTo 0

    ' エラーハンドリング: 画像が選択されていない場合
    If selectedImage Is Nothing Or selectedImage.Type <> msoPicture Then
        MsgBox "基準となる画像を選択してください。", vbExclamation, "エラー"
        Exit Sub
    End If

    ' 選択された画像のサイズを取得
    targetWidth = selectedImage.Width
    targetHeight = selectedImage.Height

    ' シート上のすべての画像を選択した画像のサイズに変更
    For Each shp In ActiveSheet.Shapes
        If shp.Type = msoPicture Then
            shp.LockAspectRatio = msoFalse
            shp.Width = targetWidth
            shp.Height = targetHeight
        End If
    Next shp

    MsgBox "すべての画像が選択した画像のサイズに変更されました。", vbInformation, "完了"
End Sub

3. 使い方

以下の手順でマクロを設定し、実行します。

  • 1. VBE(Visual Basic Editor)を開く

    • Excelを開き、キーボードの「Alt + F11」キーを押してVBEを起動します。

2. 新しいモジュールを挿入

  • VBEのメニューから「挿入」→「標準モジュール」を選択します。

  • 挿入されたモジュールに、先ほどのマクロコード(ResizeImagesToSelected)をコピー&ペーストします。

3. マクロを実行

  • Excelに戻り、リボンの「開発」タブをクリックします。(「開発」タブが表示されていない場合は、Excelのオプションから有効にしてください。)

  • マクロ」ボタンをクリックし、一覧から「ResizeImagesToSelected」を選択して「実行」をクリックします。

    1. 実行手順:

      1. 基準となる画像を選択
        シート上で、リサイズの基準となる画像を一つ選択します。

      2. マクロの実行
        マクロを実行すると、選択された画像のサイズに合わせてシート上の全ての画像がリサイズされます。

      3. 完了メッセージの確認
        リサイズが完了すると、メッセージボックスが表示されます。

4. ファイルの配布

実際のファイルも置いておきます。これをダウンロードして使用することも可能です。

5. まとめ

本記事では、選択した画像に合わせてExcelシート上の全画像を一括でリサイズするマクロを紹介しました。マクロを活用することで、手動で行う煩雑な作業を自動化し、作業効率を大幅に向上させることができます。

この記事で紹介したマクロをさらにカスタマイズしたい場合や、エラーが発生する場合は、お気軽にコメントをお寄せください!

※本記事で紹介しているマクロやファイルの使用に伴い発生したいかなるトラブルや損害についても、当方では一切の責任を負いかねます。すべて自己責任のもとでご利用ください。

いいなと思ったら応援しよう!