This article was previously published under Q162102
On This Page
SUMMARY
This article describes 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.
Microsoft 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.
On the Tools menu, point to Macro, and then click Macros.
This opens the Macro dialog box.
2.
In the Macro Name box, type a name for your macro.
NOTE: Macro names 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.
If you type an invalid macro name, you receive a
message similar to the following
<macro name> is not a valid name for a macro
where <macro name> is the name that you typed for the macro.
3.
Click Create.
This opens the Visual Basic Editor. The Visual
Basic Editor is an area where you can create, edit, and debug
your macros.
You are now looking at a flashing insertion point 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.
1.
Type the following line of code between the Sub and End Sub:
Dim MySlide As Slide
When you were typing in the code, you probably noticed some interesting
things happen. After you hit the spacebar following the word as, a drop
down 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. In
this case, MySlide will have the data type Slide.
2.
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
created uses the Title Only AutoLayout. Lets take a closer look at
this line of code.
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, search for
"Add Slides" using the Help menu.
For more information on the slide AutoLayouts available, search for
"PpPlaceHolder Type" using the Help menu.
TIP: When entering code, if the property and method list pops up, 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 now looks something like this:
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 what is going on in the code.
Now that your macro actually does something, you can try running the
macro.
To view the source code of a specific macro, follow these steps:
1.
On the Tools menu, point to Macro, and then click Macros.
This opens up the Macro dialog box.
2.
Click the macro that you want to edit.
3.
Click Edit.
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 can't record in PowerPoint.
You are now ready to add the rest of the commands to complete the macro.
1.
Type the following as the next line of code in your macro:
ActiveWindow.ViewType = ppViewSlideSorter
This changes the presentation to slide sorter view. We are doing this
so we can select the entire slide, including the slide itself.
For more information about PowerPoint views, search for "views" using the
Help menu.
2.
Add the next line of code to your macro:
MySlide.Select
This code selects the slide that you created. MySlide is the object
reference that you created with the Dim statement.
3.
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. Using With to group multiple commands can improve the
performance of the macro as well as saving you a lot of typing.
If you didn't use the With statement, your code would look like this:
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 main disadvantage of the With statement is that it sometimes
makes the code more difficult to read, especially if you nest a With
within another With statement.
4.
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 that you created.
5.
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.
6.
Add the last line of code to your macro:
ActivePresentation.SlideShowSettings.Run
This line of code starts the presentation as a slide show.
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
For more information about creating Visual Basic for Applications macros,
click the Office Assistant in Microsoft PowerPoint, type how to create a
macro click Search, and then click to view "Create a macro in Visual
Basic Editor."
For more information about running Visual Basic for Applications macros,
click the Office Assistant in Microsoft PowerPoint, type how to run a
macro click Search, and then click to view "Run a macro."
NOTE: If the Assistant is hidden, click the Office Assistant button on the
Standard toolbar. If the Assistant is not able to answer your query, please
see the following article in the Microsoft Knowledge Base:
176476 (http://support.microsoft.com/kb/176476/EN-US/)
OFF: Office Assistant Not Answering Visual Basic Questions
For additional information about getting help with Visual Basic for
Applications, please see the following article in the Microsoft Knowledge
Base:
163435 (http://support.microsoft.com/kb/163435/EN-US/)
VBA: Programming Resources for Visual Basic for Applications
Need More Help? Contact a Support professional by Email, Online or Phone.
Customer Service For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
Newsgroups Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.