Skip to main content

Button States From A Table

I was asked recently to create a button that would have different states ( normal, hover over, down ). My first thought was to just use a command button from the developer tab. But they are pretty bland and somewhat clunky 1980's PC designed. I remembered a couple of ways that I have updated slide data before, sometimes from a table or another shape, both are very flexible techniques. The technique I'll show here is the table technique it is very straightforward and a creative mind will easily see the possibilities for more interesting uses.

The Process:
On any slide create a shape I've put mine on the first slide hence in the script it reads
ActivePresentation.Slides(1) when I refer to the path of the shape. You can change the number if your shape is on a different slide. Once you create your shape in the Selection Pane rename your object to myButton or something else that you can remember easily later.


Then create another shape and make it larger than your button and send it behind your button by right-clicking and sending it backward. Alternatively, use the selection plane and re-order it so that it is behind the button. You should have something set up like this

Later you can change the second shape to be transparent or the colour of your background.
Next, add a table 2 rows by 3 columns to the very bottom of the slide place it outside the viewable area. 


Add to the top row the words you want for each state. You can leave this if you just want the colour only. In the second row add the individual colours for each state. Name it something you will remember later 



Now create 3 macros by choosing the Developer tab and Macros. Name the macros so that you know what they do.



Add one extra macro called Tick. This will be used later to add a short pause to the button so that the down state can be seen momentarily. 

Now in the VBA script copy the code below. 




Now select the button and choose Insert > Action


For the Mouse Click choose myButtonClick, for the Mouse Over choose myButtonOver. Then choose the shape you made for the back and choose myOuter as the Mouse Over option, don't add anything to the Mouse Click. 

Now your button should work like this.


I'm sure the creative among you will find lots of great things to use this for. By the way, you can add the code to the myButtonClick script to do all the other things you need to have happen when the button gets clicked.



Comments

Popular posts from this blog

Simple Node Code

I've seen loads of solutions to building slide shows that use a callout that has a speech tag that points to the item of interest on the slideshow page. All of them include many many slides and navigation cobwebs. The simplest way I have found to do this is by using an array, an if statement and the ".Nodes.SetPosition" method. I won't show all the code for that here, that will be saved for a book I'll publish later down the track. But with this VBA most of you will get the picture. Firstly add a callout to your slide and right click on it and choose the "Edit Points" option. Then move the point at the tip of the callout tag the one with the yellow point. This will convert the callout to a code editable object. 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

Why PowerPoint?

To begin with, I don't know of any other software that is capable of creating standalone multimedia interfaces that are self-serving ( no host needed ) and available to most everybody with a PC. I know of Apache and Lybra Open Office but in the company I work, they are not readily available or liked. PowerPoint is on every machine in our organisation and is considered an enterprise solution that is secure and stable. Nearly everyone around the world is moving away from swf and actionscript, something I am remorseful about. I had fun using AS2 and AS3. Adobe Flash was one of the better animation tools around. I have looked at Adobe Animate and it's still a good animation software but the html5 that it outputs is not fully compatible with every browser. In fact in most cases with html5 there is an awful lot that can go wrong. If you want standalone apps, for instance, you are severely encumbered. PowerPoint at least for me, ticks all the boxes. It has a great variety of illustrat