Insert a Picture Automatically in Excel Based on Cell Value Using Macros

In an Excel spreadsheet, you may need to insert images automatically based on the value of cells. This can be done using Visual Basic for Applications (VBA) macros. Here is a step-by-step guide to using macros for this task.

Step 1: Preparation

Before writing the VBA code, you will need to prepare your Excel spreadsheet. You will need to determine what cells you want to compare and then select the range. This is done by selecting the cells in the spreadsheet, and then recording the cell range.

Step 2: Writing the Macro

Now, open the Visual Basic Editor by clicking on the Developer Tab in the ribbon and select Visual Basic. Here, you will enter a Sub procedure. In this procedure, you will include the range of cells selected earlier as well as your code to compare the cell values.

The VBA code should look something like this:

Sub insertImage()

    Dim ws As Worksheet
    Dim imagerange As Range
    Dim cell As Range
    Dim img As Picture
    Set ws = Sheet1
    Set imagerange = ws.Range("A1:A10")
    For Each cell In imagerange 
        If cell.Value = "Apple" Then 
            Set img = ActiveSheet.Pictures.Insert("C:\apple.jpg")
            img.Left = cell.Left
            img.Top = cell.Top
            img.Placement = xlMoveAndSize
        End If
    Next cell
End Sub

Step 3: Running the Macro

Once you have written the code, you can run it from the Visual Basic Editor by clicking on the green arrow. When the code is complete, the images should have been automatically inserted based on the cell values.


What is the Visual Basic Editor?

The Visual Basic Editor is a program for editing macros and Visual Basic for Applications (VBA) code in Microsoft Office applications.

How can I find the Developer Tab?

The Developer Tab can be found by performing the following steps:

  • Make sure that the ribbon is visible. To do this, go to the File tab and select Options.
  • Then, under Customize Ribbon, select the Developer checkbox and select OK.
  • The Developer Tab should now be visible in the ribbon.

How do I write VBA code?

Writing VBA code is an important skill and involves a process of writing statements and expressions to create a procedure or program. This includes knowing the different VBA commands, syntax and keywords. Resources such as Microsoft’s Visual Basic for Applications documentation and tutorials can be helpful in understanding how to write VBA code.

What does the Placement property in VBA do?

The Placement property in VBA is used to set the placement of an object, such as a picture or shape, on a worksheet. The Placement property takes xlMoveAndSize as an argument, which means that the object is moved and sized on the sheet when the macro is executed.

How can I insert more than one image in the VBA code?

If you want to insert more than one image, you can use a loop to loop through all of the images needed. You will need to add the individual images to a folder, then specify the path in the code. The loop should be written as follows:

For Each Myphoto In ListOfPhotos
    Set img = ActiveSheet.Pictures.Insert("C:\" & Myphoto)
    img.Left = cell.Left
    img.Top = cell.Top
    img.Placement = xlMoveAndSize 
Next Myphoto


Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.