Introduction: PowerPoint Jeopardy

Having a fun and interactive way to present information keeps everyone that is involved more engaged in what is happening.  For me and many others that means a Jeopardy style game.  By having different tools at hand (ahem... such as this PowerPoint Jeopardy... shameless plug...) you, as the teacher, can help your students become more interested in the task at hand and by doing so may help pique their interest in the subject being taught. 

Now, on to a couple of the W's.

What exactly is this?  This is a PowerPoint presentation that allows you to conduct a Jeopardy style game on a secondary monitor (such as a projector). 

Why did you make this, can't you just use one of the many templates that are already out there?  This is true.  If you do a quick search on the internet you will see that you can find many different templates for a Jeopardy-like game.  The problem for me was that I didn't like any of them that are available.  It seems that every template that is available is based on using hyperlinks to different slides, which I believe imparts many limitations.  The first of which being that the only way you can tell that an answer has selected is that the hyperlink is a different color (usually goes from blue to purple).  I show an example of this in picture #2.  I also wanted to have a game board in which prize amount would go away if it had previously been selected (see picture #3 for my version).  A final requirement that I had was that this would have to be relatively easy to use, setup, and re-use in the future.  I didn't want to make something that I would remember how to use come 6 months to a year down the road.

How was this done?  This was done utilizing the "Macros" ability of PowerPoint.  (Note: this was designed using Microsoft Office PowerPoint 2007 and may or may not work in other versions.  Unfortunately I do not have any other versions to test it in, but if you find that you can or can't use it in another version, please leave a note in the comments for everyone!) 

In the next steps I am going to explain how I made this presentation/macro.  If you would rather skip the explanation and just jump to getting/using the file, please go to the last step.

Step 1: Creating the Presentation

To begin, we want to make the skin of this game; the PowerPoint presentation itself.  As you can see from my screenshot (picture #1) when making the game board the size that I have it (4 rows x 5 columns for answers, with 1 row for category names), you will need a total of 22 slides.  The first slide is the game board, the next 20 are the slides for the answers, and I use the final slide for the Final Jeopardy question.  Go ahead and insert blank slides ("blank" being the format option for the slides) such that you have a total of 2.

Now lets start on what I like to call the "game board" slide.  This will be our first slide in the presentation.  Everything that you see in all of the slides is made by inserting "Shapes."  To do so, go to your "Insert" tab along the top of the screen and click "Shapes."  Throughout the whole presentation I've only used the rectangular shape, but feel free to use any that you like.  The most important thing at this point is to write down the order and placement of shape that you add.  Why this is important is because the program internally names each shape in the order that they are created on each slide.  For example:  If on the first slide you insert a shape (and this is the first shape that you have added) this shape's "name" in the program is now Slide(1).Shape(1).  If you add an additional shape, this next one will be named Slide(1).Shape(2) and so on.  We need to know each shape's "name" so that we can make changes to it in the future.

For my game board slide the first row of answers are shapes 1-5, the second row of answers are shapes 6-10, the third row of answers are shapes 11-15, the forth row of answers are shapes 16-20, and my category row are shapes 21-25.  This can be seen on picture #2.  Now go ahead and make your game board using shapes.

For aesthetics you can change things such as the font, font color, font size, shape fill, and shape border color (I also recommend centering the text in each shape) .

Next go to the second slide in your presentation.  For this we want to add two shapes.  Shape number one should be the near the top to act as a title for that slide.  Shape number two will be where you can type answers.  An example of mine is in picture #3.  For the shapes on my answer slides I removed the outline and made the shape fill the same color as my background so that there is no appearance of shapes being on the slides. 

After you have finished adding the shapes to this slide you can change the aesthetics for the shapes like you did on the game board.

Now, on the left hand side of the screen you should see the two slides that you have made.  Right-click on the answer slide you just finished and select "Copy."  You are now going to right-click below the answer slide and select "Paste."  You want to repeat this such that you have 21 answer slides for a grand total of 22 slides.

In the last slide, go ahead and change the text in the title to "Final Jeopardy."

Congratulations!  The slides portion of this project is now finished!

Step 2: Creating the Control Board

The way that the game is controlled is through the use of the Control Board, which we will make next.  This is backbone of the game.  This is also our starting point that is our foray into the world of macros. 

Click on the "View" tab on your top toolbar and select "Macros."  It should look like picture #1.

In the "Macro name:" section, type in the name that you want your macro to be called.  I use GameBoardControl.  Next click, "Create."

Now the first thing you want to do is right-click in the top left corner just below "Modules" and select "Insert" -> "UserForm."

This will give you a screen that looks like picture #2.

Right now your form is small, so we want to take the box in the lower right corner, click and drag to make it bigger.

Now we want to use our "Toolbox" to add Command Buttons, Labels, and Text Boxes to our form.  Don't worry about the text in them or their names at this point.  We want to end up with something that looks likes picture #3.  All of the slightly raised objects are Command Buttons, the text only are labels, and the two white boxes on the bottom right side are text boxes.

Click on the blue bar at the top of the form to select it (it most likely reads UserForm1).  On the bottom left in the "Properties" window, highlight the text "UserForm1" to the right of "(Name)" and change it to "ControlBoard" (no space inbetween and not quotation marks).  This changes the forms "name" within the program so later when we reference it, we will use ControlBoard instead of the arbitrary UserForm1.  We can also change the text that appears on the top of the form by changing what is in the right of the "Caption" spot in the Properties window.  I changed mine to "Control Board."  The difference between (Name) and Caption is that (Name) is what the computer uses to name an object (and to have the computer interact with something, we need to know the (Name)) and Caption is what is displayed to the user on the screen.

Now it will be really useful if you name the objects on the form in the same way that I have done in picture #3.  If you don't, or if you change the layout that's cool, but you will have to make the necessary changes to the code in the next step to reflect this.  For everything in the form except for the far right column (the column that starts with "Initialize Game Board" and ends with "Final Jeopardy") change the (Name) and Caption (both should be the same) for the Command Buttons and Labels to what I have listed, keeping in mind that there should not be any spaces in the names.  The naming scheme for the Command Buttons is: Cmd+(column number word)+(row number) to make it easy to reference them in the future.  The labels are just: Label+(column number word). 

For the far right column that we haven't named yet, moving top to bottom the command buttons are ((Name) / Caption): (CmdIniGB / Initialize Game Board) (CmdIniCB / Initialize Control Board) (CmdStartPP / Start PowerPoint Presentation) (CmdExitPP / Exit PowerPoint Presentation) (CmdGameBoard / Show Game Board) (CmdFinal / Final Jeopardy)

The two text boxes, left to right are ((Name) / Text): (LowPrizeBox / 100) and (IncreaseBox / 100).

These (Names) are very important because they are what we are going to use in the next step with the code.

Whew!  The Control Board Form is now complete!

Step 3: Adding in the Code

If the presentation was the skin, and the Control Board the backbone, then the code is the meat.  This is what does the work for us.

(Note:  All "Code" will be in italics.  When you type it in there is no need for the italics, it just helps to differentiate it from the rest of the text here.)

When we first created our macro, before we added the form, there was a window with some text in it.  We want to select that window now.  In-between "Sub GameBoardControl ()" and "End Sub" you want to copy and paste the following:

If Windows.Count = 0 Then MsgBox "There is no active window.", vbOKCancel, "No Window Is Open"
ControlBoard.Show


The first line will help us avoid errors down the road, and the second line is what will make our form we just made appear when we run this macro.  Without "ControlBoard.Show" we would never see the form when we run the macro.  Of course, if you named your form something other than ControlBoard you will want to adjust it to your name.

We are now done with that text window and you can now close it, or just keep it open.

Next we want to move back to your form.

Double-click on your "Initialize Game Board" command button.  This will open up a window with the following at the top of the screen:

Private Sub CmdIniGB_Click ()
End Sub


Whatever code that we put in-between those two lines will execute when that button is pressed.  This is the button that we are going to press when we want to initialize the game board.  What we want to happen is for the program to take the values that are listed in the Low Prize and Increase text box and update the first slide in the presentation with the correct prize values in each box.  Next we want it to go through each of the answer slides and update the title with the correct category name and prize value for each.  We will want to put the following code in-between those two lines (I'll give an explanation of each bit as we go along):

Dim boardPos As Integer
Dim prizeValue As Integer
Dim prizeValueIncrease As Integer
Set gameBoard = ActivePresentation.Slides(1)

boardPos = 1
prizeValue = ControlBoard.LowPrizeBox.Text
prizeValueIncrease = ControlBoard.IncreaseBox.Text


In the first three lines we are declaring the variables that we are going to work with in this section.  This means that we can now use boardPos, prizeValue, and prizeValueIncrease as variables and set their value to (nearly) any integer (whole number).  In the fourth line we set gameBoard equal to ActivePresentation.Slides(1).  What this means is that whenever we use "gameBoard" in the code, the program will recognize it as the first slide in our presentation (which if you remember, the first slide in our presentation is our game board).  In the last three lines I am taking the variables that we recently declared and am giving them values.  Unless they get changed later in the code, boardPos will have the value of 1, and prizeValue and prizeValueIncrease will have the value of what is in the text boxes that we made on the ControlBoard.

For boardPos = 1 To 5
   gameBoard.Shapes(boardPos).TextFrame.TextRange.Text = prizeValue
Next boardPos


What the first line here is telling us is that we are going to run the code on the second line as long as the variable boardPos is the number 1, 2, 3, 4, or 5.  The second line is the code that it's going to run.  What this does is take the prizeValue and change the text of the corresponding shape on the game board.  Or in other words, when boardPos is 1, it goes to the gameBoard (our first slide in the presentation) and takes Shapes number 1 (this is why we said earlier that it was important to know the number of each shape added.  If you put yours in a different order, you will want to make the change in the code) and changes the Text (what is written on the computer screen) to the integer that is in the prizeValue variable (which just a second ago we set equal to the Prize Value text box on the Control Board).  The last line makes the boardPos increase by 1.  It will continue doing this until the third line of code in this section makes boardPos inrease to 6.  When it is 6, it moves down to the following:

prizeValue = prizeValue + prizeValueIncrease

What this does is set the variable prizeValue equal to the sum of prizeValue plus prizeValueIncrease.  The previous set of code changed the text of the shapes of the first row of answers to lowest value of the prizes.  This line of code gets us ready for the second row of answers.

In the following code, we are doing what we did above, except we are moving down the board and increasing the prize value of each row.  Let me know if any more explanation is needed:

For boardPos = 6 To 10
    gameBoard.Shapes(boardPos).TextFrame.TextRange.Text = prizeValue
Next boardPos

prizeValue = prizeValue + prizeValueIncrease

For boardPos = 11 To 15
    gameBoard.Shapes(boardPos).TextFrame.TextRange.Text = prizeValue
Next boardPos

prizeValue = prizeValue + prizeValueIncrease

For boardPos = 16 To 20
    gameBoard.Shapes(boardPos).TextFrame.TextRange.Text = prizeValue
Next


All of the previous code was used to add the correct prize values to the answer squares on our game board (slide 1).  The following code will be used to change the title on each answer slide (slides 2-21) to the corresponding category and prize value:

(Note: the code following this should be all on 1 line in the program.  Unfortunately it looks broken up here)

ActivePresentation.Slides(2).Shapes(1).TextFrame.TextRange.Text =    
     ActivePresentation.Slides(1).Shapes(21).TextFrame.TextRange.Text + " $" +
     ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text


Okay, lets break this down piece by piece.  The first part (ActivePresentation.Slides(2).Shapes(1).TextFrame.TextRange.Text) says that we want to take the first shape (should be the "title" shape) in slide two (which we said earlier would be CatOne for the lowest prize value) and change the Text of that shape to what is after the equals sign (which by now you should be able to guess what that is).  Shape 21 (if you remember) is the shape that corresponds to the text of the first category, and shape 1 is the text of the lowest prize value for the the categories.  That means that this bit of code should change the title in slide 2 to "CatOne $100." 

Congratulations!  We now just have to add in the code for the rest of answer slides and we're finished with this command button (copy and paste the code but change the slide number and shape numbers to the appropriate ones)!  (The rest of the code can be seen in the PowerPoint presentation, but if you would like I can send it to you).  If you can not remember what number the shapes are on the game board, just check out the picture below for a refresher.

Step 4: Adding in the Code Pt. 2

Now that we've just finished initializing the game board, we want to go ahead and initialize our ControlBoard so that we, as the operator, can easily tell what button to press.  Back on our ControlBoard form, double-click the "Initialize Control Board" command button.  You should see the following code:

Private Sub CmdIniCB_Click ()

End Sub

As before, we want to add the following code in-between those two lines:

Set gameBoard = ActivePresentation.Slides(1)

With ControlBoard
    .LabelOne.Caption = gameBoard.Shapes(21).TextFrame.TextRange.Text
    .LabelTwo.Caption = gameBoard.Shapes(22).TextFrame.TextRange.Text
    .LabelThree.Caption = gameBoard.Shapes(23).TextFrame.TextRange.Text
    .LabelFour.Caption = gameBoard.Shapes(24).TextFrame.TextRange.Text
    .LabelFive.Caption = gameBoard.Shapes(25).TextFrame.TextRange.Text
    .CmdOne1.Caption = gameBoard.Shapes(1).TextFrame.TextRange.Text
    .CmdOne2.Caption = gameBoard.Shapes(6).TextFrame.TextRange.Text
    .CmdOne3.Caption = gameBoard.Shapes(11).TextFrame.TextRange.Text
    .CmdOne4.Caption = gameBoard.Shapes(16).TextFrame.TextRange.Text
    .CmdTwo1.Caption = gameBoard.Shapes(2).TextFrame.TextRange.Text
    .CmdTwo2.Caption = gameBoard.Shapes(7).TextFrame.TextRange.Text
    .CmdTwo3.Caption = gameBoard.Shapes(12).TextFrame.TextRange.Text
    .CmdTwo4.Caption = gameBoard.Shapes(17).TextFrame.TextRange.Text
    .CmdThree1.Caption = gameBoard.Shapes(3).TextFrame.TextRange.Text
    .CmdThree2.Caption = gameBoard.Shapes(8).TextFrame.TextRange.Text
    .CmdThree3.Caption = gameBoard.Shapes(13).TextFrame.TextRange.Text
    .CmdThree4.Caption = gameBoard.Shapes(18).TextFrame.TextRange.Text
    .CmdFour1.Caption = gameBoard.Shapes(4).TextFrame.TextRange.Text
    .CmdFour2.Caption = gameBoard.Shapes(9).TextFrame.TextRange.Text
    .CmdFour3.Caption = gameBoard.Shapes(14).TextFrame.TextRange.Text
    .CmdFour4.Caption = gameBoard.Shapes(19).TextFrame.TextRange.Text
    .CmdFive1.Caption = gameBoard.Shapes(5).TextFrame.TextRange.Text
    .CmdFive2.Caption = gameBoard.Shapes(10).TextFrame.TextRange.Text
    .CmdFive3.Caption = gameBoard.Shapes(15).TextFrame.TextRange.Text
    .CmdFive4.Caption = gameBoard.Shapes(20).TextFrame.TextRange.Text
End With


Again, the first line sets gameBoard equal to the first slide in the presentation.  The next section then starts "With ControlBoard."  What this line does is save us a little typing.  For every line in-between the "With" and the "End With" the program will automatially add "ControlBoard" to the start of the line.  For example, the line after "With ControlBoard" starts "LabelOne.Caption,"  in reality it is treated as being the same as "ControlBoard.LabelOne.Caption."  If you look at the whole line you can see that we are taking the caption (the text that we see on the computer screen) of LabelOne and making it the same as the Text of Shape 21 (the first category) of slide 1 (the game board).  Continuing down the list you can see that we make changes to the ControlBoard so that it looks the same as the game board.  (Again the picture is given to help with the shape numbers of the game board).

Next we want to double-click the "Start PowerPoint Presentation" and add the following code in the same manner as before:

With ActivePresentation.SlideShowSettings
    .AdvanceMode = ppSlideShowManualAdvance
    .ShowType = ppShowTypeKiosk
    .Run
End With


By now, the "With" and "End With" should look familiar.  What we are doing with this code is setting the presentation to manually advance the slides, using the Kiosk show type (two monitors) and then starting the presentation.  Next double-click "End PowerPoint Presentation" and add the following (should be self-explanitory):

ActivePresentation.SlideShowWindow.View.Exit

Now we'll move to the "Show Game Board" (double-click the button) and add:

ActivePresentation.SlideShowWindow.View.GotoSlide (1)

You should be getting pretty good with the code now, and I am sure that you understand that when this button is clicked it will change the presentation back to slide number one.

Next is the "Final Jeopardy" button (double-click) and it should come as no surprise that the code is the following (Wait! Before looking, can you guess what is it going to be?):

ActivePresentation.SlideShowWindow.View.GotoSlide (22)

Now that we are done with the far right side column of buttons, all we have left are the game buttons.  I'm going to give you the code for the top left button (CmdOne1) and will leave it to you to fill in the rest (if you'd rather not, you can still go to the PowerPoint presentation file in the last step of this instructable and take it from there).

Double-click CmdOne1 and in-between the two lines add the following:

ControlBoard.CmdOne1.Caption = " "
ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = " "
ActivePresentation.SlideShowWindow.View.GotoSlide (2)


When we click that button now when running the game, what it will do is take the caption (what we see on the button) of the button we pressed and delete the number that is on it, it then takes the corresponding spot on the game board (slide 1 of the presentation) and removes the prize value from that also (so that no one in the future will guess that spot) and then on the final line of code it takes us to the answer slide for that spot (all three things happen so fast that it only appears that we go to the answer slide).  All we need to do is add in that code to the other buttons (and correct for the right buttons/shapes/slides) and we have finished coding the macro!!

Step 5: Using the Game

Now that we have finished lets go ahead and use the game!  Yea!  Cheers!  *Fanfare*  Huzzahs all around!

These directions are going to seem a little long-winded the first time through, but after you have done it once, it will be very easy and make a lot of sense.

Open the PowerPoint presentation (either the one I have here, or the one you made).

To begin, you will need to enable macros if they are not automatically enabled.  This usually appears as a security popup or as a message just below your toolbar.

On the first slide change the text of the categories (in my file the default is CatOne, CatTwo, etc.) to whatever you would like.

Next, go through the slides and type in the answers that you would like to appear for each box in the "AnswerGoesHere"  spot.  In my example, the title of each answer slide (i.e. CatOne $100) lets you know where you are (in relation to the game board).

As was stated before, you do need to have two computer screens for this work.  One is used for the operator (i.e. the laptop screen that the person running the game is using) and the other is for the players to view (i.e. projector screen).

At this point we need to make sure that you are using extended desktop with your two screens.  This means that instead of each screen showing the same thing, they both should have something different in them.  This can usually be changed in your Graphics Properties.

Now place the PowerPoint application window in the secondary monitor (the secondary monitor is the screen that does not have the Windows bar in it (in the case of Windows) and should be the screen that the operator is using, not the contestants).  If your projector is the secondary screen, just go ahead and make the adjustments in your Graphics Properties to switch it.

Next you can click on the "View" tab in your toolbar and select "Macros."  Select and "Run" "GameBoardControl."

Drag the GameBoardControl to the secondary monitor along with the PowerPoint application.

On the GameBoardControl, type in the starting amount for the prizes and type in the amount you want it to increase by.  What this will do is set the prize amounts for the answers on the game board.  For example with a starting prize of 100 and an increase of 100; the top row of answers will be worth 100, the second will add 100 to that making it 200, the third will end up being 300, and so on.

Next on the GameBoardControl, click "Initialize Game Board."  This will take the prize amounts you put in earlier and change all of the boxes on the game board to the appropriate values.  It will also go through all of the answer slides and change the title to the correct category (based on the categories you typed into the game board slide) and prize amount.

After that, click "Initialize Control Board."  This will take the buttons on the GameBoardControl and change the names to reflect the game board.

Finally you can click, "Start Presentation." 

Whenever someone asks for an answer (i.e. CatOne for 300) you click the corresponding button on the GameBoardControl.  This will take you to that slide.  After that answer is done, just click, "Show Game Board" to go back to the game board.  There you will see that answer you just clicked is no longer available on the game board and the prize amount has also been removed from the GameBoardControl!!  When you are ready to go to the Final Jeopardy slide, just go ahead and click the "Final Jeopardy" button on the GameBoardControl.

To exit the game, just press the button "Exit PowerPoint Presentation" and then click the "X" in the upper right corner of the GameControlBoard.

I hope you enjoy using this.  The times that I have used it people have really loved the experience and were surprised that it was done in PowerPoint.  Feel free to let others use this and change it too, it would also be great if you could direct those people to this instructable page.  If you liked it, please rate it highly and vote for me in the contest, it would be very much appreciated!!

The Teacher Contest

Participated in the
The Teacher Contest