Use VBA to Insert a Picture File onto a PowerPoint Slide

Inserting images is an integral part of creating visually appealing PowerPoint presentations. While inserting a picture manually onto individual slides is easy, automating this process using VBA can save time when working with multiple slides or presentations.

Why Automate Image Insertion

There are several key benefits to automating the process of inserting reusable images like logos or icons onto PowerPoint slides using VBA:

  • Saves time – Manually inserting images onto multiple slides or presentations is tedious and time-consuming. A VBA macro can insert images with a single click.
  • Consistency – VBA allows you to insert images in a consistent position and size across multiple slides and presentations. This creates a uniform, professional look.
  • Reusability – Once created, the VBA macro can be reused whenever you need to insert an image, eliminating repetitive manual work.
  • Flexibility – The macro can be modified to insert different images, adjust size or positioning, or insert images onto specific slide layouts.

Steps to Create an Image Insertion Macro

Follow these steps to create a simple VBA macro to insert a logo image onto PowerPoint slides:

1. Enable the Developer Tab

The Developer tab contains the Visual Basic Editor button which allows you to access VBA. To enable it:

  • In PowerPoint, go to File > Options > Customize Ribbon
  • Under Main Tabs, check the ‘Developer’ box
  • Click OK

2. Open the Visual Basic Editor

Click the Visual Basic button on the Developer tab to open the VBA editor. This is where you’ll write and edit your VBA code.

3. Insert a VBA Module

In the VBA editor:

  • Go to Insert > Module
  • An empty code module will be created

4. Write the VBA Macro

In the blank code module, write the VBA subprocedure to insert the image:

Sub InsertLogo()

    'Insert company logo
    ActiveWindow.Selection.SlideRange.Shapes.AddPicture FileName:="C:\Logos\Company.jpg", _
                LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _
                Left:=100, Top:=100, Width:=125, Height:=75

End Sub

This code inserts the image Company.jpg from the specified file path, sets its position and size, and embeds it into the presentation.

5. Run the Macro

To test the macro:

  • Switch to PowerPoint
  • Select the slide(s) where you want to insert the image
  • Go to Developer > Macros
  • Select the macro name and click Run

The logo image will be inserted in the predefined position and size.

Customizing the Image Insertion Macro

Once created, the macro can be easily customized:

  • Update the file path and name to insert different images
  • Adjust the Left, Top, Width and Height values to control position and size
  • Add conditionals and loops insert images onto multiple specific slides
  • Trigger the macro to run automatically when the presentation opens

With some tweaking, you can create a flexible VBA macro to automate image insertion, saving hours of repetitive manual work!


Automating repetitive tasks is where VBA macros really shine. This simple macro demonstrates how VBA can be used to speed up image insertion in PowerPoint.

With VBA, you can programmatically manipulate and enhance PowerPoint presentations far beyond what can be done manually. Investing some time in learning VBA can pay off exponentially when creating and working with large volumes of slides and presentations.

So next time you find yourself repeatedly inserting the same images, consider taking the automation route with VBA instead! Your future self will thank you.