How to Insert Multiple Images at Once in Excel


This post will guide you how to insert multiple images at once in Microsoft Excel. How do I quickly insert multiple pictures into Excel Cells with VBA Macro. How to insert multiple pictures and resize them in Excel.

Insert Multiple Images At Once

Assuming that you want to insert multiple images from a folder at once into your current worksheet in Excel, you can use an Excel VBA Macro to achieve the result. Just do the following steps:

#1 open your excel workbook and then click on “Visual Basic” command under DEVELOPER Tab, or just press “ALT+F11” shortcut.

Get the position of the nth using excel vba1

#2 then the “Visual Basic Editor” window will appear.

#3 click “Insert” ->”Module” to create a new module.

convert column number to letter3

#4 paste the below VBA code (get code from here) into the code window. Then clicking “Save” button.

insert multiple images1

Sub InsertPicAndResizeToCell()
'with this macro (using the right mouse button) a picture can be inserted into the active cell
'the picture is resized into the cell keeping ratio
'where are the pictures?
Dim vPics
Dim iPic As Integer
vPics = Application.GetOpenFilename("All image files (*.JPG;*.BMP),*.JPG;*.BMP", MultiSelect:=True)
If TypeName(vPics) = "Boolean" Then Exit Sub ' cancelled

Dim oNewPic As Shape
Dim Pic1 As Range

'cell or range of cells where the picture should be inserted:
Set Pic1 = ActiveWindow.RangeSelection

For iPic = LBound(vPics) To UBound(vPics)

  'Insert the picture:
  Set oNewPic = ActiveSheet.Shapes.AddPicture(Filename:=vPics(iPic), LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _
  Left:=Pic1.Left + 0.5, Top:=Pic1.Top + 0.5, Width:=Pic1.Height, Height:=Pic1.Height)

  'Maintain original aspect ratio and set to full size
  oNewPic.LockAspectRatio = msoTrue
  oNewPic.ScaleHeight factor:=1, RelativeToOriginalSize:=msoTrue
  oNewPic.ScaleWidth factor:=1, RelativeToOriginalSize:=msoTrue

  '    'Resize the picture to fit in the destination cells
  If (oNewPic.Width / oNewPic.Height) < (Pic1.Width / Pic1.Height) Then
    oNewPic.Height = Pic1.Height - 1.5
  Else: oNewPic.Width = Pic1.Width - 1.5
  End If
  Set Pic1 = Pic1.Offset(1)  ' replace Sheet1.ComboBox1 with reference to your combobox

End Sub

#5 back to the current worksheet, then run the above excel macro. Click Run button. and then the open dialog will appear.

#6 select the folder which contains images that you want to insert, choose the images, and then click Open button.

#7 the selected images will be inserted into your current worksheet. Let’s see the result:

insert multiple images2


Leave a Reply