I’ve seen plenty of solutions for building slideshow tutorials that use a callout with a speech tag pointing to the item of interest on the slide. Most of these approaches involve creating large numbers of slides with complex navigation — a real tangle to manage.
The simplest method I’ve found is to use an array, an If statement, and the .Nodes.SetPosition method. I won’t include the full code here — that’s something I’ll save for a book I plan to publish later — but the example below should give you the idea.
First, add a callout shape to your slide. Then right-click the callout and select Edit Points. Move the tip of the callout tag (the point with the yellow handle). This converts the callout into an object that you can control more flexibly with code.
Now on the top ribbon choose the developer tab and then select the macro icon. If you can't see the developer tab in the ribbon, a quick Google search will bring up a bunch of tutorials on what to do to make it available and how to turn on macro capability.
Hit Create and a new larger macro editing window will open for you. This is where the magic happens. You should now be looking at a generated scrip container something like this.
This is where you will add some code. But before you do it helps to start naming individual objects so that you can use the code to tell them to do things. Back in the main screen of PowerPoint choose the home tab.
At the far right of the home tab menu, you will see the select dropdown. Choose select and then selection pane. This will open a panel that shows each object on your slide and its position in relation to the other objects, very much like a layering menu in other multimedia software. Here you will be able to make objects visible or invisible, rename them or the group they may be in.
So here you can see the callout shape that I created and will manipulate with code. I've called mine Call1 you can name yours anything you want. Next, add the script bellow back in the macro script.
So to quickly explain this script..
The Sub is the subroutine and I called it Call_Out in the create macro window. Dim is how you declare variables and other objects. Set is declaring that when the program sees the variable name that it means the thing it equals. This could be a "string" a number or a repeated command. The work here is being done in the .Node.Setposition 7, 425,179 . What this is doing is grabbing the 7th point and translating it or repositioning it to a new position using the last two values. These are the x and y coordinates ( play with these to find the position you need ). It is with this code I can get the call out to point at any item on the screen of the phone. All I do is change the last two sets of numbers to place the point where I need it. To connect this action to a button I just need to choose the button I want to run the macro then under insert action, choose the macro I want to run on click. By the way you'll notice that the script is repeated for the second slide in my example. You don't need to add the second lot of code. This just worked for the project I was creating at the time.
Try this out yourself there is no end of uses for it.
Comments
Post a Comment