activepresentation vba

Contribute to the Microsoft 365 and Office forum! Click  here  to learn more  💡

April 9, 2024

Contribute to the Microsoft 365 and Office forum!

Click  here  to learn more  💡

PowerPoint Forum Top Contributors: Steve Rindsberg  -  John Korchok  -  Bob Jones AKA: CyberTaz   ✅

May 10, 2024

PowerPoint Forum Top Contributors:

Steve Rindsberg  -  John Korchok  -  Bob Jones AKA: CyberTaz   ✅

  • Search the community and support articles
  • Microsoft 365 and Office
  • Search Community member

Ask a new question

Bob Umlas, Excel MVP

In PowerPoint VBA, how do I refer to the ACTIVE slide?

I want to be able to insert an object on the active slide in VBA code. I could only find

ActivePresentation.Slides(2).Shapes.Addshape...

like I have to refer to a particular slide rather than the active one. I'm sure it can be done, but couldn't find it by browsing the object browser.

Report abuse

Reported content has been submitted​

HansV MVP

Use code like this:

Dim sld As Slide Dim shp As Shape Set sld = Application.ActiveWindow.View.Slide Set shp = sld.Shapes.AddShape(Type:=msoShapeRectangle, _     Left:=50, Top:=50, Width:=100, Height:=200) shp.Fill.ForeColor.RGB = vbBlue

47 people found this reply helpful

Was this reply helpful? Yes No

Sorry this didn't help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

Thanks for your feedback.

Replies (13) 

Question info.

  • Norsk Bokmål
  • Ελληνικά
  • Русский
  • עברית
  • العربية
  • ไทย
  • 한국어
  • 中文(简体)
  • 中文(繁體)
  • 日本語

EasyTweaks.com

How to create and add slides to PowerPoint presentations with VBA?

A couple days ago, a reader asked about there is a way to automate creation of PowerPoint presentations from scratch and then quickly add slides to that existing presentation. I though that script might be highly in the list of the most useful PowerPoint Macros. 

As we indicated in the past, PowerPoint doesn’t include a Macro Recorder (that’s unlike Excel and Word, which both have built in recorders for Macro). Therefore, we are left with good old Visual Basic for Application that we can use to create simple Macros to automate PowerPoint. There are further alternatives for PowerPoint Automation, but those goes beyond the scope of this tutorial.

In today’s short tutorial, we’ll go over three different use cases:

  • New presentation creation (blank or using a template)
  • Add slides to an existing presentation.
  • A mix of the two above mentioned cases (Create from scratch and slides addition)

Let’s get started.

Look at the Ribbon. If you don’t see the a Developer entry in the menu, before start your coding you’ll need to enable the developer tab.

After you make the Developer menu visible your Ribbon, go ahead and hit on Developer , then hit on the Visual Basic button (or simply go ahead and hit Alt+F11) to open the Visual Basic IDE.

VBA to Create PowerPoint Presentation

  • In the VB Editor, right click on VBAProject and hit Insert .
  • Select Module .
  • Paste the following code in the newly create module.
  • Hit File and then Save.
  • To Run your code, hit Run and then pick Run Sub/User Form (or simply F5).
  • Close the VB editor.

VBA to insert slides

  • In the VB Editor, right click on VBAProject and hit Insert.
  • Select Module

Add slides at the end of the presentation

In order to insert a new blank slide at the last position in your presentation, use the following VBA code:

Macro to setup a new presentation and add slides

That would be just mixing up the two snippets outlined above.

Generate a PowerPoint Presentation from Excel

Last case is that you would like to create a PowerPoint presentation right from an Excel spreadsheet. You can employ the same technique from Word and other Microsoft 365 Applications.

  • Link the Spreadsheet to the PowerPoint Data Model (from Tools>>References)
  • Insert a button unto your Excel spreadsheet (Developer >> Insert and then pick a Command Button).
  • Insert the VBA code below into your Spreadsheet VBA Project (directly into the Sheet or into a VBA Module)
  • Modify the script as required.
  • Run (hit F5) and test the outcome.

How to use VBA in PowerPoint: A beginner’s guide

  • Written by: Jamie Garroch
  • Categories: PowerPoint productivity , Presentation technology
  • Comments: 45

activepresentation vba

Here at BrightCarbon we’re always looking for new ways to improve our own PowerPoint productivity and then share that knowledge with the presentation community (that includes you, by the way!). One of the ways we do this is by using VBA code to automate and extend the functionality of PowerPoint. We publish  free PowerPoint VBA code snippets here in our blog for you to use and also offer a PowerPoint automation service . This article explains how to grab the code from our articles and use it in your PowerPoint project, so that you can take your productivity to the next level!

What is VBA?

Visual Basic for Applications (VBA) is a programming environment for Microsoft Office applications. It’s included with your installation of Office by default  ( unless your system administrator has deactivated it ) . PowerPoint VBA provides you with a way to do one of two things   using macros and add-ins:  

  • A utomate  PowerPo int:   If you ever find yourself repeating the same task over and over again, VBA could be your new best friend.  Let’s say you have 100 slides and you need to unhide all hidden objects  across all those slides . That could take you  many  eye-straining minutes, but with a PowerPoint VBA it takes around a  second.
  • E xtend  PowerPoint :   Sometimes PowerPoint doesn’t have the feature you need  to complete your task . As an example, if you end up deleting default layouts from a template, there’s no  easy  way in PowerPoint to get them back. This article includes PowerPoint VBA code to do just that!

How to open the VBE (Visual Basic Editor)

Getting to meet your VBA friend is very simple. With PowerPoint open and at least one presentation file open, press  Alt+F11 * on your keyboard. This will open the VBE (Visual Basic Editor):  

PowerPoint VBE No Modules

*If for some reason Alt+F11 isn’t mapped on your keyboard you can right click anywhere on the ribbon, select  Customize the Ribbon…  and in the window that appears, tick the  Developer Tab  check box over on the right hand side before clicking  OK  to close the window. Now you can click the  Visual Basic  button within this tab:  

PowerPoint Developer Tab Visual Basic

Adding PowerPoint VBA code  

To add some VBA code, you need a container to put it in so go ahead and click  Insert  from the menu and then select  Module :  

PowerPoint VBE Insert Module

You now have a module ready to paste the VBA code into  from one of our blog articles :  

PowerPoint VBE Module Inserted

Copy the VBA code from  the required blog article  by double-clicking on it and then paste it into the  Module1  window above.  Here’s a very simple example of some code  to display a message dialogue :

You should now see something like this:  

PowerPoint VBA

Because this code is just a single  Sub  procedure called  HelloWorld , it’s referred to as a macro.  

Running  the PowerPoint VBA macro  

Now you have the macro in your presentation you can use  Alt+Tab  to return to the more familiar PowerPoint window. From here, the macro can be run by pressing  Alt+F8  on your keyboard  (or b y  clicking the  Macros  button in the Developer tab)  which opens a window containing a list of available macros:  

PowerPoint VBA

Security Soup

The first time you add VBA code to a file, Microsoft assumes that it is safe because you added it. As soon as you save, close and reopen the file, Microsoft doesn’t know that it’s your code so it will disable it by default. You can tell the Office app to allow your code to run either by signing it with a digital certificate (beyond the scope of this article) or by lowering the security setting for the app. You can do this in PowerPoint by clicking File / Options / Trust Center / Trust Center Settings / Macro Settings and selecting this option shown below:

VBA Macro Settings

Saving your file  

activepresentation vba

Once you ’ve added  VBA code  to  your presentation, PowerPoint will  ask you to save it as a  pptm  file  (the ‘m’ stands for macro)  instead of the more  familiar  pptx  format .  You can go ahead and do this to  either  keep a n archive  copy of your  code-enabled  project  or   to  create your personal macro library.  

If you want to distribute your  presentation,   it’s advisable to   save  it  using the familiar pptx format so that  your  recipients don’t see lots of verbose  security  messages  when opening  pptm  files!  

Y ou can  make  your file saveable as a standard presentation again  by  right – click ing  on  each   code module in the  project explorer pane , clicking  Remove   ModuleX …   and either click  Yes   (if you want to keep a backup of the modules independently of your presentation)  or  No   when  asked if you want to save the module before removing it :  

activepresentation vba

Now your presentation doesn’t include any code and you can save it as a pptx file.  

So, there you have it.  You now know how to open the VBE, insert a PowerPoint VBA code module, paste code into it, run the macro and save the file in either pptm  or pptx formats. All you need is a cool macro to make your daily life even easier. Keep checking in with our blog for more useful macros – like this one on restoring default slide master layouts!

Got something extra you’d like PowerPoint to do?

Check out our PowerPoint automation service which provides you with a custom solution to your specific needs.

activepresentation vba

Jamie Garroch

Principal technical consultant, related articles, how to consistently brand graphs and charts across microsoft office.

  • PowerPoint design / PowerPoint productivity
  • Comments: 1

How do you make sure that your graphs and charts have consistent branding across Excel, PowerPoint and Word? Learn how to create and use custom templates that support your brand identity across Microsoft Office.

activepresentation vba

Changes to VBA Macro Security in Microsoft 365

  • Presentation technology / Industry insights
  • Comments: 2

You can do some really cool things in Microsoft Office with just a few lines of Visual Basic for Applications (VBA) - from creating your own custom formula in Excel to correcting branded content in PowerPoint to merging address data for a mail campaign in Word. And sometimes you need to share that VBA solution with colleagues and clients, via the Internet. A change that Microsoft rolled out at the end of March 2022 tweaks the process required by Windows users to gain access to this active content.

activepresentation vba

Protecting your prized PowerPoint content

  • PowerPoint productivity / Presentation technology

Our comprehensive guide to password protecting PowerPoint files so your precious presentations stay just they you made them!

very simple, very explicit, very good help for a beginner vba programmer in powerpoint. Thanks

great resource, thanks. I’ve used VBA for years in MSaccess, and this is a good refresher for me.

I am trying to make a ppt file that loops until stopped. then I save it as a video. the ppt ran and looped continuously. Once recorded as video it stopped looping. do you have code to make ppt work when in video format

Hi Charles. As soon as you export a PowerPoint deck as a video all the PowerPoint functionality is removed as the file is magically transformed into an MP4 file, without VBA (sob sob). The only way to make the video loop is to use the looping feature of your video player.

Yeah, your best off recording a screen capture of the presentation running, then cutting it so it loops perfectly.

You can convert the video into gif file so that it will loop

Hi Jamie, thanks for the clear into, I am very new to this so that really helps. I am trying to develop a VBA macro that looks for the left hand mouse key being pressed and held down for more than two seconds whilst over a shape in slideshow mode. Once this is satisfied (i.e. two second press) for it then to hyperlink or take the user to a specified slide or even the next slide worst case.

I realise there is an automated/ built in feature (Action) that does this type of thing for a mouse click or mouse over but I really need a “long press” to activate if possible.

Any help appreciated.

Hi Simon and thanks for a great question. What you’re looking to do is pretty complex because VBA doesn’t natively support mouse actions in the PowerPoint slide show window. But, it is possible to use a Windows API (hence no Mac compatibility) called GetAsyncKeyState to gain access to mouse button click events. I had a look at this and quickly ran into a brick wall because an action link to a macro in slide show mode (Insert / Action / Mouse Click / Run macro) fires on the mouse up event, not mouse down. That means any corresponding VBA timer code can’t run until after the user releases the button and hence too late to detect if it was held down for two seconds. Maybe something could be done with the mouse over event to simulate what you need to achieve? Another approach could be to use the mouse down event on an invisible userform although that is also getting very involved with multiple Windows APIs. Depending on what you’re trying to do, you could also start the timer on click one, change the colour of the clicked shape and show countdown text before reverting to the original colour. If the user clicks a second time before the time expires, then the hyperlink is fired.

Valuable app

Hello I have a question:

Private Sub CommandButton2_Click() ActivePresentation.FollowHyperlink _ Address:=”http://192.168.16.49/?OUT1=ON”, _ NewWindow:=False, AddHistory:=False ActivePresentation.SlideShowWindow.View.GotoSlide (2)

Now it opens Chrome. but how can i make it that it opens te address en afther that shut down chrome.

Hi Tom. Your example should open the default browser at the URL specified by the Address parameter. For more information on the FollowHyperlink method, see this Microsoft documentation: https://docs.microsoft.com/en-us/office/vba/api/powerpoint.presentation.followhyperlink

Thank you very much! It’s exactly what I needed.

I have tried using your randomizing macro with a powerpoint – I must be doing something wrong, because it isn’t putting the slides in random order. Please advise! I copied the macro exactly (using cut & paste), and thought I was following all the directions here for how to use it in the powerpoint. But, no random presentation of the slides. Boo hoo!

Hi Marya. Let’s check that VBA is installed and enabled on your machine. Can you add the following macro to the VBE project (just below the existing one) and try to run it from the PowerPoint window using Alt+F8?

Sub CheckVBA() MsgBox “it’s working” End Sub

Make sure the quotes are the straight type.

I am trying to format my title page so that the number displayed is equal to the linked slide and updates automatically wherever the slide is moved. For example “about us” is on slide #5 and linked, so it goes to slide 5 when you click on the word. I need the number (in a separate text box) to update automatically to the slide number location that the link goes to.

Hi Mary and thanks for the question. It looks like you’re interested in some kind of automated agenda slide builder. That’s a fair bit of code to create and quite complex as it needs to handle events from PowerPoint to detect when slides have moved. It could be possible to write a simpler macro which you run manually each time you want to update that title page. You’d need start by finding a way to identify which objects are your numerical indicators. For example, if you named your objects in the selection pane (Alt+F10) “Agenda Link”, then is simple macro could be a starting place for you: Sub UpdateAgendaNumbers() Dim oSld As Slide Dim oShp As Shape Dim LinkedSlideIndex As Long On Error Resume Next For Each oSld In ActivePresentation.Slides For Each oShp In oSld.Shapes If oShp.Name = “Agenda Link” Then If oShp.ActionSettings(ppMouseClick).Action = ppActionHyperlink Then If oShp.HasTextFrame Then LinkedSlideIndex = Split(oShp.ActionSettings(ppMouseClick).Hyperlink.SubAddress, “,”)(1) oShp.TextFrame.TextRange.Text = LinkedSlideIndex End If End If End If Next Next End Sub

Great wealth of information. Have never used macros before but was looking to use them to help with this situation. At work we use Work Orders (created in Power Point) and are looking to include a sequential number to them (print 50-100 copies of one slide with the numbers) and if possible would like the number to continue from the last printed number…been trying to find some code to help but not having much luck possible partly due to being new to macros

That’s definitely something we could help design for you Joshua. If you’d like to discuss further, please click the Contact button at the top of this page.

I tried this changing the font color of text within the textbox. I used this to change the font color on a mouse over:

Public Sub GraphicHover(ByRef oGraphic As Shape)

oGraphic.TextFrame.TextRange.Font.Color.RGB = RGB(0, 130, 202)

and it works just fine. But, when I move the mouse off the text box, onto the invisible rectangle with this code attached to the mouseover event, it doesn’t change the text color back to it’s original color and remains the color I changed it to mentioned above. I know the mouseover event is being triggered because I checked “Highlight when mouse over” and I am seeing the highlight on the invisible rectangle:

Public Sub ResetGraphicHover(ByRef oCover As Shape) Dim oSld As Slide Dim oShp As Shape Set oSld = oCover.Parent For Each oShp In oSld.Shapes With oShp.TextFrame.TextRange.Font.Color If .RGB = RGB(0, 130, 202) Then .RGB = RGB(121, 135, 156) End With Next End Sub

Any clue where my ResetGraphicHover is failing?

Hi Dave. I took your code and it works for me. You could add a debug line after the For Each… line in the rest macro to check that (a) it’s firing and (b) which shapes are being looked at on your slide. To do that, add this:

Debug.Print oShp.Name

After you run the slide show, check the output in the VBE Immediate pane (Ctrl+G to toggle it).

Hi I am creating an interactive game (matching cards or concentration) in PowerPoint. If the 2 cards match, I need a pop-up text box to appear. If the 2 cards do not match, I need a sound to play.

I understand I need programming to make this happen. Please help or give alternative ways to achieve this. Thanks.

Hi Tammy. Have a look at this article which will help you: https://www.brightcarbon.com/blog/powerpoint-memory-game/

Hi Producer I will like to get comments on macros you can make available to me. Beautiful. I am using this approach frequently to make offline projects. Thanks. S. Fas

Excellent!!! Thank you!

You’re more than welcome Nataša!

Thank you! Is there any option to replace a font in the entire presentation for a specific character. Let’s say, I would like to change font only for dots in the deck but I would like to keep the rest in the original font. Any idea please? Thank you so much!

Hi Jan. You might be able to use the Replace Fonts feature found in the Home tab of PowerPoint under the Replace menu at the far end of the ribbon. If you need to use VBA then set up a nested loop to iterate all shapes within all slides and then use the oShp.TextFrame2.TextRange.Font object to change the font.

Exellent explenation. so beutiful. I am creating an interactive e learing quiz. Thanking you.

Hello! I have a client who’s interested in using tagging to help create searchable content within slides. For example, they have four different categories for slide content across multiple presentations (Overview, Market, Product, Country). I’d like to assign a different shape to represent each of the four categories, where a blue square might represent Overview slide content. Then, when someone uses the keyword “Overview” to search for overview content (on Teams or SharePoint), these slides are easily identified. Is this something that’s possible with VBA code?

Hi Linda. That’s a very good question! Given the need is to search via SharePoint, VBA probably won’t help here as the PowerPoint file needs to be opened for VBA to examine its content. I have a sneaking suspicion that if you add keywords in the Tags field under File / Info that SharePoint may use this. But, that’s at the file level rather than the slide level. We have a PowerPoint add-in called ShowMaker that might be of interest as it allows you to add category metadata to slides and then the presenter can use that to filter the deck and export the required content. You can find an overview of it here: https://www.brightcarbon.com/showmaker/ and we could set up a demo if you’re interested (please use the Contact button at the top of this page if that’s the case).

I’ve just created an elearning package in PowerPoint using VBA , I didn’t realise it could sum up text boxes within PowerPoint to mark the qualification at the end. Also used AWS text to speech over the top of the learning . Looks great

Sounds like a fun and successful project Stu! Thanks for sharing 🙂

I have a bit of a tricky one but hoping it is possible to do with VBA. We offer training services to multiple clients that can be customized but the majority of training is consistent from one client to the next (main changes are the slide masters/formatting and addition/removal of certain sections).

What we want to do is create one master (or multiple) training document(s), and then use VBA’s to link it to the client specific PowerPoint. We want to link the master rather than using the “reuse slide” command so that if we update one file the other will automatically update as well.

Not sure if it matters, but our company uses sharepoint as storage

Hi Dave and thanks for a great question. VBA is an excellent solution for automating a manual process. In general, if a person can perform a task manually via a sequence of pre-defined steps then VBA can do it automatically, faster, and with less chance of mistakes for something done many times. We’d be happy set up a call to discuss your needs further and see what could be automated with VBA. If that’s of interest, please use the contact button at the top of the page and mention my name in the form.

PP does not seem to have the record macro feature. To write vba code in PP by someone who only worked with vba in excel, would require some prior knowledge. Is there a summary of the most common objects, methods etc to refer to?

Hi Reef. You’re correct that there’s no VBA macro recording feature in newer versions of PowerPoint. The best place to start learning is by purchasing a book (there’s one called “Mastering VBA for Microsoft Office 365” on Amazon or reading the extremely exciting Object Model documentation from Microsoft: https://docs.microsoft.com/en-us/office/vba/api/overview/powerpoint/object-model

Hi Greeting I had made a game in power point using VBA codes. At last it generate a report every time a candidate conduct the game . My requirement is to generate result in same excel sheet after conducting the game. Like Row 1 player 1 result Row 2 player 2 result I need your help Regards

Hi Asheesh. It’s possible to use VBA to get PowerPoint to “talk” to Excel (and other Office apps) but it’s a bit complicated to mention in a comment here. We’d be happy to help if you’d like a quote or if you want to try yourself you could start with this: Set oXL = CreateObject(“Excel.Application”) and have a look at some online examples. I’d also recommend the book “Mastering VBA for Microsoft Office 365” available from Amazon.

If there are two colors of font in the textFrame, how to change the font of one color through VBA?

Hi Bruce. You could either iterate through the Characters collection of the TextRange2 object or the Runs collection which returns all of the TextRanges with the same style. Example: ActiveWindow.Selection.ShapeRange(1).TextFrame2.TextRange.Runs(1).Font.Fill.ForeColor.RGB

Hi – can you help, please?

How can I change the font color and size of the message box? What code will work and where will I put it? Creating an interactive game in powerpoint. Thank you!

—– Sub Correct() Points.Caption = (Points.Caption) + 10 Output = MsgBox(“Your answer is correct, well done!”, vbOKOnly, “Correct Answer”) ActivePresentation.SlideShowWindow.View.Next End Sub

Sub Incorrect() Points.Caption = (Points.Caption) – 5 Output = MsgBox(“Your answer is incorrect.”, vbOKOnly, “Wrong Answer”) ActivePresentation.SlideShowWindow.View.Next End Sub

Sub Reset() SlideLayout.Points.Caption = 0 ActivePresentation.SlideShowWindow.View.Exit End Sub ———-

Thanks for your explanation.

Hi Jamie, Is there any way to keep my macro save in a file so I can utilize on any other PPTs equivalent as.normal.dotm for Word, .xlam(add-in) for Excel.

Hi Anurag. Thanks for the question and Happy New Year! The best way to do this would be to export your project as a ppam and activate it as an add-in via the PowerPoint add-ins UI. Save your ppam in %AppData%\Microsoft\AddIns and then in the Windows PowerPoint Developer tab, click PowerPoint Add-Ins and add your ppam from there. If you’re not code-signing your VBA project, you may need to adjust Trust Centre settings. You could optionally build an EXE/MSI installer package for Windows and PKG for macOS, although that is a more complex topic.

Join the BrightCarbon mailing list for monthly invites and resources

BrightCarbon is our “go to” for all of our professional presentations, always delivering high quality projects on time and on budget. Cynthia Rogan Apex Learning

activepresentation vba

MrExcel Message Board

  • Search forums
  • Board Rules

Follow along with the video below to see how to install our site as a web app on your home screen.

Note: This feature may not be available in some browsers.

  • If you would like to post, please check out the MrExcel Message Board FAQ and register here . If you forgot your password, you can reset your password .
  • Question Forums
  • Excel Questions

Setting ActivePresentation/ActiveWindow of PowerPoint via Excel VBA

  • Thread starter cr731
  • Start date Feb 25, 2015

Well-known Member

  • Feb 25, 2015

I use a macro to create presentations in PowerPoint from, and each time I add a new presentation, the "ActivePresentation" or "ActiveWindow" refers to the existing instance of PowerPoint, not the newly created one. This creates issues when I try to refer to ActiveWindow... is there a way to activate a specific presentation?  

Excel Facts

RoryA

MrExcel MVP, Moderator

Store a reference to the presentation when you create it (the Add method returns a reference to it): Code: Set myPresentation = PowerPointApp.Presentations.Add  

RoryA said: Store a reference to the presentation when you create it (the Add method returns a reference to it): Code: Set myPresentation = PowerPointApp.Presentations.Add Click to expand...

laurent22300

  • Apr 15, 2016
cr731 said: But that doesn't actually change the ActiveWindow. So for instance, I want to do this, ActiveWindow.Selection.Unselect to unselect my most recently added Shape. But the ActiveWindow remains the old window, not the newly created one. I can't seem to get any sort of myPresentation.Activate line to work. Click to expand...

Similar threads

  • noobslayer252
  • Jan 11, 2024
  • Sep 5, 2023
  • Apr 9, 2024
  • May 3, 2024

myall_blues

  • Jan 14, 2024

Forum statistics

Share this page.

activepresentation vba

We've detected that you are using an adblocker.

Which adblocker are you using.

AdBlock

Disable AdBlock

activepresentation vba

Disable AdBlock Plus

activepresentation vba

Disable uBlock Origin

activepresentation vba

Disable uBlock

activepresentation vba

Class SectionProperties (PowerPoint VBA)

Contains properties and methods for manipulating sections in a presentation. To use a SectionProperties class variable it first needs to be instantiated, for example

AddBeforeSlide

Adds a section immediately before the specified slide index, and returns the index of the new section.

The indices of sections after the newly inserted section are automatically incremented by one. If a section break exists immediately before the specified slide index, the new section is placed after the section break, with the result that the preceding section is now empty, and the specified slide index is now the first slide of the new section. If the presentation does not contain any sections and you call this method, passing a SlideIndex value greater than 1, a new section is created before the first slide and given the default section name.

AddBeforeSlide ( SlideIndex , sectionName )

The following arguments are required:

SlideIndex (Long) - The index of the slide before which to add the section.

sectionName (String) - The name of the new section.

Adds a new section at the specified index position and returns the index of the newly created section.

If a section already exists at the specified index position, calling AddSection is equivalent to adding an empty section immediately before that section. The indices of sections after the newly inserted section are automatically incremented by one. sectionIndex can be one larger than the total number of existing sections, as long as it is less than the maximum number of sections allowed (512); this creates a new, empty section at the end. If no sections exist in the presentation, calling this method and passing a sectionIndex value of 1 creates the first section.

AddSection ( sectionIndex , sectionName )

The following argument is required

sectionIndex (Long) - The index of the section before which to add the section.

Optional arguments

The following argument is optional

Returns the number of objects in the specified collection.

Deletes the section break that sets off the specified section, and optionally deletes all the slides in the section.

If the presentation contains more than one section, you cannot delete the first section without deleting all of the slides in that section.

Delete ( sectionIndex , deleteSlides )

sectionIndex (Long) - The index of the section to delete.

deleteSlides (Boolean) - Whether to delete all the slides in the section. True, to delete all the slides within the section; False not to delete them.

Returns the index of the first slide in the specified section, or returns -1 if the section is empty.

FirstSlide ( sectionIndex )

sectionIndex: The index of the section.

Moves the specified section to the specified index position, moving the slides in the section along with the section break.

The section is moved to the index position immediately before the section whose current index is toPos.

Move ( sectionIndex , toPos )

sectionIndex (Long) - The index of the section to move.

toPos (Long) - The index position to which to move the section.

Returns the name of the specified section as a String.

Name ( sectionIndex )

sectionIndex: The index of the section in the SectionProperties collection.

Renames the specified section with the specified name.

If sectionName is empty, the section is assigned the default section name.

Rename ( sectionIndex , sectionName )

sectionIndex (Long) - The index of the section to rename.

sectionName (String) - The new name of the section.

Returns a string that represents the unique identifier of the specified section.

The returned string is in the form "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX}", where each "X" is a hexadecimal digid.

SectionID ( sectionIndex )

SlidesCount

Returns the number of slides in the specified section.

SlidesCount ( sectionIndex )

请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。

Application.ActivePresentation 属性 (PowerPoint)

返回一个 Presentation 对象,该对象代表活动窗口中打开的演示文稿。 只读。

expression 。 ActivePresentation

expression :表示 Application 对象的变量。

如果在就地激活嵌入的演示文稿, ActivePresentation 属性返回嵌入的演示文稿。

本示例将加载的演示文稿保存到应用程序文件夹下名为“TestFile”的文件中。

Application 对象

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈 ,获取有关如何接收支持和提供反馈的指南。

即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅: https://aka.ms/ContentUserFeedback 。

IMAGES

  1. How to use VBA in PowerPoint: A beginner's guide

    activepresentation vba

  2. Create PowerPoint Presentations Automatically using VBA » Chandoo.org

    activepresentation vba

  3. VBA PowerPoint

    activepresentation vba

  4. Add and Delete Slides in Powerpoint Presentation Using VBA

    activepresentation vba

  5. Create PowerPoint Presentations Automatically using VBA » Chandoo.org

    activepresentation vba

  6. Tutorial y ejemplos de macros de PowerPoint VBA

    activepresentation vba

VIDEO

  1. Membuat soal quiz / kuis pilihan ganda di power point (ppt) muncul Nilai / SKOR nya

  2. 엑사남의 VBA 무료강의 _ 썸네일 여러장 한꺼번에 저장하기

  3. VBA Урок_8

  4. Осваиваю VBA: всплывающие окна и вкладки

  5. Powerpoint: PRESS YOUR LUCK style GAME TUTORIAL

  6. VBA

COMMENTS

  1. Application.ActivePresentation property (PowerPoint)

    If an embedded presentation is in-place active, the ActivePresentation property returns the embedded presentation. Example. This example saves the loaded presentation to the application folder in a file named "TestFile." MyPath = Application.Path & "\TestFile" Application.ActivePresentation.SaveAs MyPath See also. Application Object. Support ...

  2. Getting the Active Slide of a PPT Presentation via VBA (but from Excel

    I added a VBA reference to "Microsoft PowerPoint x.x Object Library" for early binding and intellisense. ... "Powerpoint.Application") Set pppres2 = ppApp.ActivePresentation input_position = ppApp.ActiveWindow.Selection.SlideRange.SlideIndex Share. Improve this answer.

  3. Application.ActivePresentation Property (PowerPoint VBA)

    Application.ActivePresentation (PowerPoint) Returns a Presentation object that represents the presentation open in the active window. If an embedded presentation is in-place active, the ActivePresentation property returns the embedded presentation. MyPath = Application.Path & "\TestFile". Application.ActivePresentation.SaveAs MyPath.

  4. PowerPoint VBA Macro Examples & Tutorial

    Use the reference ActivePresentation to manipulate the Presentation active in the GUI when the VBA code is executed. ' Print the name of the ActivePresentation to the Immediate Window Debug.Print ActivePresentation.Name Save Current Presentation. The statement below will save the Active Presentation if it was saved before.

  5. In PowerPoint VBA, how do I refer to the ACTIVE slide?

    I want to be able to insert an object on the active slide in VBA code. I could only find. ActivePresentation.Slides(2).Shapes.Addshape... like I have to refer to a particular slide rather than the active one. I'm sure it can be done, but couldn't find it by browsing the object browser. TIA . Bob Umlas. Excel MVP

  6. VBA Macro to create Powerpoint presentation and add slides

    VBA to insert slides. In the VB Editor, right click on VBAProject and hit Insert. Select Module. Paste the following code in the newly create module. Sub CreateSlide() Dim NewSlide as Slide. 'This statement ads a title slide. Set NewSlide = ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle)

  7. How to use VBA in PowerPoint: A beginner's guide

    Getting to meet your VBA friend is very simple. With PowerPoint open and at least one presentation file open, press Alt+F11* on your keyboard. This will open the VBE (Visual Basic Editor): *If for some reason Alt+F11 isn't mapped on your keyboard you can right click anywhere on the ribbon, select Customize the Ribbon… and in the window that ...

  8. Setting ActivePresentation/ActiveWindow of PowerPoint via Excel VBA

    RoryA said: Store a reference to the presentation when you create it (the Add method returns a reference to it): Code: Set myPresentation = PowerPointApp.Presentations.Add. But that doesn't actually change the ActiveWindow. So for instance, I want to do this, ActiveWindow.Selection.Unselect to unselect my most recently added Shape.

  9. PDF PowerPoint VBA

    VBA Add-in with Hundreds of Ready-To-Use Code Examples, Code Generators, and much more! Learn More Create PowerPoint Macro This is a simple example of a PowerPoint VBA Macro: Sub SavePresentationAsPDF() Dim pptName As String Dim PDFName As String ' Save PowerPoint as PDF pptName = ActivePresentation.FullName

  10. PowerPoint class SectionProperties VBA

    Presentation. SectionProperties. Class SectionProperties (PowerPoint VBA) Contains properties and methods for manipulating sections in a presentation. To use a SectionProperties class variable it first needs to be instantiated, for example. Dim sps as SectionProperties. Set sps = ActivePresentation.SectionProperties.

  11. Presentation.Slides property (PowerPoint)

    Application.ActivePresentation.Slides.Add 1, ppLayoutTitle See also. Presentation Object. Support and feedback. Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

  12. Loop Through Each Slide In Your Active PowerPoint Presentation

    What This VBA Code Does. Often times we want to make changes that affect every slide in the PowerPoint presentation. The best way to do this is to use a loop that can apply the same change to every single slide in the presentation. ... /The-Code-Vault Dim sld As Slide 'Loop Through Each Slide in ActivePresentation For Each sld In ...

  13. Using variables inside .Slides & .Shapes methods in Powerpoint VBA

    ActivePresentation.Slides(objCurrentSlideNum).Shapes(objCurrentShape.Name).Copy. ' Place new blank slide at the end of the presentation. Set pptNewSlide = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, ppLayoutCustom) ' Make the new slide the active slide.

  14. How can I run VBA code when a PowerPoint slide opens

    Full code:. Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow) Dim i As Integer Dim sld As Slide Dim shp As Shape Dim boxText As String Set sld = ActivePresentation.SlideShowWindow.View.Slide MsgBox "slideshow index is " & sld.SlideIndex If sld.SlideIndex = 5 Then For Each shp In sld.Shapes If shp.HasTextFrame Then boxText = shp.TextFrame.TextRange.Text If InStr(boxText, "10 seconds ...

  15. Application.ActivePresentation 属性 (PowerPoint)

    ActivePresentation. expression:表示 Application 对象的变量。 返回值. 演示文稿. 备注. 如果在就地激活嵌入的演示文稿, ActivePresentation 属性返回嵌入的演示文稿。 示例. 本示例将加载的演示文稿保存到应用程序文件夹下名为"TestFile"的文件中。