PPT2000: Introduction to Macro Programming in PowerPoint 2000 (222771)
The information in this article applies to:
- Microsoft PowerPoint 2000
This article was previously published under Q222771 SUMMARY
This article explains the steps to create a simple Microsoft
Visual Basic for Applications macro within Microsoft PowerPoint. The macro
you create will add a slide to your presentation, set a background texture
for a slide, set slide timings, and run a slide show.
This article is designed to introduce you to some of the tools and concepts
you need to become a macro programmer.
MORE INFORMATIONMicrosoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. NOTE: The following macro examples work only in PowerPoint. Visual Basic for Applications macros are not supported by the Microsoft PowerPoint Viewer. For additional information, click the following article number to view the article in the Microsoft Knowledge Base: Create A New Presentation- On the File menu, click New. This opens up the New Presentation dialog box.
- Select the Blank Presentation icon on the General tab and click OK.
This opens the New Slide dialog box.
- Click to select the Blank AutoLayout, located in the lower right corner, and click OK.
You now have a blank presentation open, ready to create the macro.
Create a Macro- On the Tools menu, point to Macro, and then click Macros. This opens up the Macro dialog box.
- In the Macro name box, type a name for your macro. The name must
begin with a letter and can contain up to 80 characters. Visual Basic
for Applications keywords are invalid names for macros. The name cannot
contain any spaces. Programmers typically use an underscore character(_)
to separate words.
Do not worry about trying to remember all the rules for naming macros.
If you enter an invalid macro name, PowerPoint will display a dialog
box with a message similar to the following:
macro name is not a valid name for a macro
If you see this message, just keep trying until you find a name that
PowerPoint will accept.
- Click Create. This opens the Visual Basic Editor. The Visual
Basic Editor is an application where you can create, edit, and debug
your macros.
Add Code to a New Macro
You should now be looking at a flashing cursor within the Code Window.
The Code Window is where you actually type Visual Basic commands. A
recorded macro can also be viewed in the code window. For the most part,
the Code Window acts like a typical text editor, enabling you to cut,
copy, and paste text. However, there are some differences that make it
easier for you to create macros. The important differences are detailed
below.
- Type the following line of code between the Sub and End Sub:
Dim MySlide As Slide
When you type in the code, you probably noticed some interesting
things happen. After you press SPACE following the word "as", a list of the available data types appeared on your screen. This is
just one of the ways the Visual Basic Editor makes programming a little
easier.
What does this code do?
Dim |
Indicates to the Visual Basic Editor you are about to declare a variable. There are several other methods available to declare variables, but this article discusses only the Dim method. |
MySlide |
Is the name you provide the variable. It is a good idea to give your variables meaningful descriptive names. X is an example of a poor variable name. Meaningful names make your code easier to read. |
As Slide |
Specifies the type of data the variable will contain. Inthis case, MySlide will have the data type Slide. |
- Let's add some more code. Type the following line of code after the
variable declaration:
Set MySlide = ActivePresentation.Slides.Add(1, ppLayoutTitle)
This code adds a new slide to the active presentation. The slide
that is created uses the Title Only auto layout.
Set MySlide |
Assigns an object reference to a variable or property. Using Set makes it easier to refer to that same object later in your code. |
ActivePresentation |
Tells the Visual Basic Editor you are referring to the presentation that is open in the active window. |
Add(1, ppLayoutTitle) |
Creates a new slide and adds it to the collection of slides in the presentation. The Add method takes two parameters:
The first parameter, the slide index, is the number 1 in this case. The slide index is the position where PowerPoint creates the slide. When the index is set to 1, PowerPoint creates the new slide at the beginning of the presentation.
The second parameter specifies the type of AutoLayout. |
For more information about creating slides programmatically, click Microsoft PowerPoint Help on the Help menu, type Add Slides in the Office Assistant or the Answer Wizard, and then click Search to view the topic. For more information about the slide AutoLayouts available, click Microsoft PowerPoint Help on the Help menu, type PpPlaceHolder Type in the Office Assistant or the Answer Wizard, and then click Search to view the topic.
TIP: When you type code, if the property and method list appears, you can select the item you want and then press TAB, which adds the object to your command and leave the cursor on the same line.
Your macro code should now look similar to the following:
Sub YourMacro ()
'
' Macro created 1/7/97 by You
'
Dim MySlide As Slide
Set MySlide = ActivePresentation.Slides.Add(1, ppLayoutTitle)
End Sub NOTE: The text following ' apostrophe (on the same line) is a comment. Comments are ignored by the Visual Basic Editor. They are added to the code to make it easier to understand.
Now that your macro actually does something, try running the
macro.
Run the Macro
There are several methods to run a macro. Only one method is described in
this article.
- Click Close and Return to Microsoft PowerPoint from the File menu. The
Visual Basic Editor closes, and you return to PowerPoint.
- On the Tools menu, point to Macro, and then click Macros. This opens the Macro dialog box.
- Select your macro from the list, and then click Run.
PowerPoint adds a new slide to the beginning of your presentation.
View the Macro Code
To view the source code of a specific macro, follow these steps:
- On the Tools menu, point to Macro, and then click Macros. The Macro dialog box appears.
- Click the macro that you want to edit. The name of the macro should appear highlighted.
- Click Edit Button. This opens the macro within the Visual Basic Editor. The Visual Basic Editor is where you make corrections, remove
unnecessary steps, or add instructions you cannot record in PowerPoint.
Add Some More Code
Now we are ready to add the rest of the commands to complete the macro.
- Add the next line of code to your macro:
ActiveWindow.ViewType = ppViewSlideSorter
This changes the presentation to slide sorter view. Add this
so you can select the entire slide.
For more information about PowerPoint views, click Microsoft PowerPoint Help on the Help menu, type views in the Office Assistant or the Answer Wizard, and then click Search to view the topic.
- Add the next line of code to your macro:
MySlide.Select
This code selects the slide you created. MySlide is the object
reference you created with the Dim statement.
- Add the next section of code to your macro:
With ActiveWindow.Selection.SlideRange
.FollowMasterBackground = msoFalse
.Background.Fill.PresetTextured msoTextureRecycledPaper
End With
These commands tell PowerPoint that this particular slide does not
follow the master, and then set the background preset texture to the
recycled paper.
The With statement allows you to group commands that have common
references. If you use With to group multiple commands, you can improve the
performance of the macro, as well as save yourself a lot of typing.
If you do not use the With statement, the code would look similar to the following:
ActiveWindow.Selection.SlideRange.FollowMasterBackground = msoFalse
ActiveWindow.Selection.SlideRange.Background.Fill.PresetTextured _
msoTextureRecycledPaper
The underscore in the second line is a continuation character. It tells
the Visual Basic Editor that you could not fit the specific command on
one line and are continuing the instruction on the next line.
You can see the advantage of using With statements; less typing and
faster code. The only downside to the With statement is it sometimes
makes the code more difficult to read, especially, if you nest a With
within another With statement.
- Add the next line of code to your macro:
MySlide.Shapes.Title.TextFrame.TextRange.Text = "Look What I Did!"
This command adds the text "Look What I Did!" into the title box of the
slide you created.
- Add the next section of code to your macro:
With ActivePresentation.Slides.Range.SlideShowTransition
.AdvanceTime = 5
.EntryEffect = ppEffectCheckerboardAcross
End With
AdvanceTime |
Specifies how long (in seconds) a particular slide is visible when running a slide show. |
EntryEffect |
Specifies the slide transition effect that runs just prior to the slide appearing. |
- Add the last line of code to your macro:
ActivePresentation.SlideShowSettings.Run
This code starts the slide show.
The Complete Macro Code
Sub YourMacro()
'
' Macro created <Date> by <You>
'
Dim MySlide As Slide
' Add a new slide to the presentation.
Set MySlide = ActivePresentation.Slides.Add(1, ppLayoutTitle)
' Change the presentation to slide sorter view.
ActiveWindow.ViewType = ppViewSlideSorter
' Select your slide.
MySlide.Select
' Apply a preset texture to the slide.
With ActiveWindow.Selection.SlideRange
.FollowMasterBackground = msoFalse
.Background.Fill.PresetTextured msoTextureRecycledPaper
End With
' Add text into title of the slide.
MySlide.Shapes.Title.TextFrame.TextRange.Text = "Look What I Did!"
' Set the slide timing and transition effect.
With ActivePresentation.Slides.Range.SlideShowTransition
.AdvanceTime = 5
.EntryEffect = ppEffectCheckerboardAcross
End With
' Start the slide show.
ActivePresentation.SlideShowSettings.Run
End Sub
REFERENCES
For more information about how to use the sample code in this article, click
the article number below to view the article in the Microsoft Knowledge
Base:
212536
OFF2000: How to Run Sample Code from Knowledge Base Articles
Modification Type: | Minor | Last Reviewed: | 10/11/2006 |
---|
Keywords: | kbcode kbdtacode kbmacro kbProgramming KB222771 |
---|
|