Add a popup window to a PowerPoint slide

Animate callouts on a PowerPoint slide to display optional information with just a quick click.

Sometimes you want to display additional information that's not a permanent element on a slide -- similar to a popup window. In other words, the information is hidden until you want to display it. For instance, you might want to display quarterly bonuses to build excitement. Or you might want to share a contact phone number or e-mail address if asked. There's no built-in feature that does this, but you can still get PowerPoint to display a pseudo popup window by adding a trigger that displays a callout.

A trigger is an object that executes an action or animation when clicked. This technique requires a graphic for you to click. If you're lucky, your slide will have an appropriate graphic to use as a trigger. If not, you can create one by inserting and then hiding an AutoShape. For the popup window, you can use a callout AutoShape. By using a trigger and a little animation, you can get PowerPoint to display the callout with a quick click.

There are several ways to arrange these items:

  • You can use two separate objects: a trigger and a callout.
  • You can use the same object for both purposes by adding a trigger to the callout.
  • You can use an existing graphic in the slide to trigger the callout.

The following example uses both a trigger and a callout, as follows:

  1. In Normal view, with the slide current, choose Basic Shapes from the AutoShapes control on the Drawing toolbar.
  2. Select and insert a shape. How big the shape is depends on how much coverage you want. The advantage to using an additional object as the trigger is that you control the trigger area. Callouts can be small and might be difficult to hit during a busy presentation.


  1. Next, add the callout AutoShape by choosing Callouts from the AutoShapes control, selecting and inserting a specific callout shape, and then entering the appropriate text.


To animate the callout, do the following:

  1. Right-click the callout AutoShape and choose Custom Animation.
  2. In the resulting Custom Animation pane, choose Entrance from the Add Effects control,and then select More Effects.
  3. From the resulting list of effects, click Faded Zoom (at the bottom) and click OK. PowerPoint will add the animated callout to the effects list.
  4. To set the trigger, choose Timing from the effect's drop-down list.


  1. In the Faded Zoom dialog box, click Triggers.
  2. Click the Start Effect On Click Of option and then select the object that when clicked will display the callout. In this case, that's the rectangular AutoShape you added in the first set of instructions. (When applying this to your own slides, give the trigger graphics meaningful names; matching the callout to the triggering object will be much easier that way.)


  1. Click OK to close the dialog box.

To complete the effect, hide the trigger graphic (if you include one) as follows:

  1. Right-click the trigger graphic (the rectangular AutoShape) and choose Format AutoShape.
  2. Choose 100% from the Transparency control in the Fill section.
  3. Then, choose No Line from the Color drop-down list in the Line section.


  1. Click OK and save the presentation.

To preview the slide, press [F5]. Click the trigger object to display the callout.


Clicking the hidden trigger object again will redisplay the callout rather than jumping to the next slide. To continue the slide show, click anywhere in the slide other than on the trigger object. Experiment with the shapes and timing once you're comfortable with the technique to get the most efficient and effective results. You might want to add an exit animation as well. That way you can hide the callout if you want to continue to view the slide without the callout.

Remember, you might not need a trigger graphic. You might use an existing graphic or even the callout itself.


Susan Sales Harkins is an IT consultant, specializing in desktop solutions. Previously, she was editor in chief for The Cobb Group, the world's largest publisher of technical journals.


Sub Attributes_Display() Dim FontSize As String Dim Alignment As String Dim LeftPosition As String Dim TopPosition As String Dim SpaceBefore As String Dim SpaceAfter As String Dim LineSpacing As String Dim IndentationBeforeText As String Dim SpecialIndentationType As String Dim SpecialIndentationBy As String 'THIS SETS THE MACRO TO RUN ONLY WHEN ONE OBJECT IS SELECTED 'MsgBox ActiveWindow.Selection.Type If ActiveWindow.Selection.Type = ppSelectionShapes Or ActiveWindow.Selection.Type = ppSelectionText Then If ActiveWindow.Selection.ShapeRange.Count = 1 Then 'THIS IS THE CODE THAT RUNS WHEN ONLY ONE OBJECT or TEXT IS SELECTED 'ALIGNMENT If ActiveWindow.Selection.TextRange.ParagraphFormat.Alignment = 1 Then Alignment = "Left" ElseIf ActiveWindow.Selection.TextRange.ParagraphFormat.Alignment = 2 Then Alignment = "Centre" ElseIf ActiveWindow.Selection.TextRange.ParagraphFormat.Alignment = 3 Then Alignment = "Right" Else Alignment = ActiveWindow.Selection.TextRange.ParagraphFormat.Alignment End If FontSize = Round(ActiveWindow.Selection.TextRange.Font.Size, 2) LeftPosition = Round(ActiveWindow.Selection.ShapeRange.Left / 72, 2) & " in" TopPosition = Round(ActiveWindow.Selection.ShapeRange.Top / 72, 2) & " in" SpaceBefore = ActiveWindow.Selection.TextRange.ParagraphFormat.SpaceBefore & " pt" SpaceAfter = ActiveWindow.Selection.TextRange.ParagraphFormat.SpaceAfter & " pt" LineSpacing = ActiveWindow.Selection.TextRange.ParagraphFormat.SpaceWithin IndentationBeforeText = Round(ActiveWindow.Selection.ShapeRange.TextFrame.Ruler.Levels(1).LeftMargin / 72, 2) Dim Response As String Response = MsgBox( _ "Font Size:" & FontSize _ & vbNewLine _ & "Alignment:" & Alignment _ & vbNewLine _ & vbNewLine _ & "POSITION" & vbNewLine _ & "Left : " & LeftPosition _ & vbNewLine _ & "Top : " & TopPosition _ & vbNewLine _ & vbNewLine _ & "SPACING" & vbNewLine _ & "Before : " & SpaceBefore _ & vbNewLine _ & "After : " & SpaceAfter _ & vbNewLine _ & "LineSpace : " & LineSpacing _ & vbNewLine _ & vbNewLine _ & "INDENTS" _ & vbNewLine _ & "Before Text : " & IndentationBeforeText & vbNewLine _ & vbNewLine _ & "Do you wish to change the values?", vbYesNo) If Response = vbYes Then ' User chose Yes. GoTo Attributes_Input Else ' User chose No. GoTo Attributes_Exit End If ElseIf ActiveWindow.Selection.ShapeRange.Count > 1 Then MsgBox "More than one object selected" Else MsgBox "No object Selected" End If Else MsgBox "No Object Selected" End If 'SET THE ATTRIBUTES IF NEEDED Attributes_Input: Dim lNum As Long On Error Resume Next Application.DisplayAlerts = False lNum = InputBox(Prompt:="Please enter you Code. 1: First Level; 2: Second Level; 3: Third Level ", Title:="Enter the paragraph level code", Default:="0") On Error GoTo 0 Application.DisplayAlerts = True If lNum = 0 Then MsgBox "No Changes Made", , "RESULT" ElseIf lNum = 1 Then ActiveWindow.Selection.TextRange.Font.Size = 18 ActiveWindow.Selection.TextRange.ParagraphFormat.Alignment = 1 ActiveWindow.Selection.TextRange.ParagraphFormat.SpaceBefore = 9 ActiveWindow.Selection.TextRange.ParagraphFormat.SpaceAfter = 0 ActiveWindow.Selection.TextRange.ParagraphFormat.SpaceWithin = 1 ActiveWindow.Selection.ShapeRange.TextFrame.Ruler.Levels(1).LeftMargin = 21.6 MsgBox "Change Successfull", , "RESULT" ElseIf lNum = 2 Then MsgBox "this is 2" ElseIf lNum = 3 Then MsgBox "this is 3" Else MsgBox "No Changes Made", , "RESULT" GoTo Attributes_Exit End If Attributes_Exit: End Sub


Well written and useful.


Any way to configure so the popup will not print so I can have clean slides to handout?


I really, really need to be able to do this with a mouseover, but the only way I've found to be able to do this is to use a Flash object in PP. Anyone have any better ideas? Thanks!!


I use them in a similar fashion but for slide shows that I send clients. Ex. I'll have a black and white diagram of their room, with electronics placement marked, hovering over the areas changes to a hand, clicking the hand opens a popup with more details , cloe up graphics, specs and manufacturer weblinks as needed. It works well, but I have been doing that since using Win95, I thought it was a basic PP presentation.


I have used this method when viewing a slide and then allow questions from the group. If they ask a question for which I have anticipated an answer associated with one of my triggers, I have a ready answer. If there is no trigger associated with the question, then I just answer the question as required. Very effective.

Editor's Picks