【ファイル付き】コピペで使えるExcelマクロ!選択した画像に合わせてExcelシート上の全画像を一括リサイズするマクロ
Excelで複数の画像を扱う際、各画像のサイズを統一するのは手間がかかる作業です。特に大量の画像がシート上に存在する場合、手動で調整するのは現実的ではありません。そこで活躍するのが、選択した画像のサイズに合わせてシート上の全画像を一括でリサイズするマクロです。
今回は、画像サイズを一括変換するマクロを紹介します。
Excelマクロの基本的な使い方は、下の記事を参考にしてください
1. マクロの概要
基準となる画像を選択
ユーザーがリサイズの基準となる画像を選択します。選択された画像の幅と高さが取得されます。シート上の全画像をリサイズ
アクティブなシート上に存在するすべての画像(Shapeオブジェクト)が、基準となる画像の幅と高さに変更されます。アスペクト比の固定を解除しているため、縦横比も統一されます。完了メッセージの表示
リサイズが完了すると、メッセージボックスで通知されます。
これにより、選択した画像に合わせてシート上の全ての画像を一括でリサイズでき、作業効率が大幅に向上します。
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」を選択して「実行」をクリックします。
実行手順:
基準となる画像を選択
シート上で、リサイズの基準となる画像を一つ選択します。マクロの実行
マクロを実行すると、選択された画像のサイズに合わせてシート上の全ての画像がリサイズされます。完了メッセージの確認
リサイズが完了すると、メッセージボックスが表示されます。
4. ファイルの配布
実際のファイルも置いておきます。これをダウンロードして使用することも可能です。
5. まとめ
本記事では、選択した画像に合わせてExcelシート上の全画像を一括でリサイズするマクロを紹介しました。マクロを活用することで、手動で行う煩雑な作業を自動化し、作業効率を大幅に向上させることができます。
この記事で紹介したマクロをさらにカスタマイズしたい場合や、エラーが発生する場合は、お気軽にコメントをお寄せください!
※本記事で紹介しているマクロやファイルの使用に伴い発生したいかなるトラブルや損害についても、当方では一切の責任を負いかねます。すべて自己責任のもとでご利用ください。