VBA PowerPoint - Disable keyboard keys? - vba

I need to know how to disable the keyboard during the presentation because I don't really want people to skip around the PowerPoint but rather interact with it. I just want to disable the buttons that let's people move around slides such as the arrow keys and the space bar.

Here's an option that would mostly disable the keyboard, and disable built-in mouse navigation.
These instructions are for Powerpoint 2007 or 2010:
Go to the Slide Show tab.
Select Set Up Slide Show.
Under Show Type, select Browsed at Kiosk (full screen).
Hit OK.
Note:
Once the slideshow is started the only key that will do anything is Esc, which will end the show.
A standard mouse click will no longer advance slides, you will need to use VBA, Hyperlinks, or timers to advance slides.
For more information, here are instructions on creating and distributing a self-running PowerPoint presentation.

Related

How can I remove keyboard focus from a button on User Control after clicking it, in a vb.net PowerPoint add-in?

I have a vsto add-in for PowerPoint (vb.net) which includes a User Control with several buttons.
After clicking any of those buttons, or the User Control itself, I can't immediately use 'Ctrl' keyboard shortcuts, like Ctrl+C. It seems that the button or the User Control gets the focus. If I click on the slide, 'Ctrl' keyboard shortcuts work again.
Is there a way that I can take the focus away from the Button / User Control, in my Button1.Click event handler, in order to be able to use Ctrl+C right away? Or a way in which I can place the focus on the PPT Presentation?
I have searched and tried a ton of different methods, with no success...
PS: One observation I have made is that if instead of a Button, I click a Panel within my User Control, I do not have this problem.
Another observation is that while I can't use 'Ctrl' shortcuts right after clicking the button, 'Alt' shortcuts continue working fine.

VBA for Powerpoint: Change Slide in One Powerpoint by Selecting Button in Another

I am a beginner at VBA.
I am designing a somewhat interactive Powerpoint presentation/s. I want to be able to have three separate Powerpoint presentations open that will link together. I have been trying (without success) to create, in VBA, code which will change the current displayed slide on one Powerpoint file by clicking a button in another. I can hyperlink to the set slide but this causes this slide to pop up on the same screen in which it is clicked, despite it being already open in another screen (I don't want this).
Thanks in advance for any help,
Holly
VBA uses an object model that is a huge hierarchy of attributes and functions that represent the application. You can use this model to view and update attributes to get text, resize, and modify the application. You should look at some tutorials to get you started. When editing your code, you can press F2 to see and explore this object model. You can press F8 to run your code line by line (debug mode) and see what is happening.
To your question, you can access the open presentations in the application.presentations object (https://learn.microsoft.com/en-us/office/vba/api/powerpoint.presentations). You could then use a presentation in that list and use the ActiveWindow.View.goToSlide function (https://learn.microsoft.com/en-us/office/vba/api/powerpoint.view.gotoslide). Here is a free tutorial that I've used in my VBA journey (https://www.tutorialspoint.com/vba/index.htm).
PowerPoint has a Presentations collection that contains all currently open presentations. You can get a reference to any of them via Presentations("name") where "name" is the filename of the presentation, sans extension.
So ... assuming you've got three presentations open, a.pptx, b.pptx, c.pptx you can do something like this:
Sub SlideChange()
With Presentations("c")
.SlideShowWindow.View.GotoSlide (3)
End With
End Sub
If you run the above in any of the presentations, it will change the slide show window displaying presentation c to the third slide.

Hide VBA codes when double clicking controls buttons

I have inserted a combo box on PPT slide. When I double click the combo box, the VBA editing window will pop up. Is there a way that when I double click the box, VBA code does not pop up? I don't want users to see my actual codes and VBA window in general.
Thanks in advance!
I think you might have design mode on. Have a look under Developer > Controls > Design Mode. Turning it off should remove that behaviour.

PowerPoint VBA code not running unless VB editor opened first

I have a PowerPoint presentation which consists of a single slide and some VBA code. The code displays a dialog box (not inside the presentation) which configures the slide.
I need the code to be started when the presentation is started.
I found various suggestions and ended up going with
this one however I am getting inconsistent results!
If I do the following, in sequence, it works:
Open presentation in PowerPoint
Select Developer tab
Select Visual Basic (to open VBA editor)
Close VBA editor
Select Slide Show tab
Select From Beginning
However, if I skip steps 2-4, it does not! I.E.:
1. Open presentation in PowerPoint
2. Select Slide Show tab
3. Select From Beginning
It is almost as though Visual Basic support isn't even loading until the editor is opened.
I also tried adding a slide before my main one with an auto-transition immediately and again, no-go.
This is driving me insane as I need to get this deployed to the rest of my department.
Anyone have any ideas?
It's kind of a known problem.
OnSlideShowPageChange sometimes doesn't fire. To get around it, add any of the Active-X controls from the Developer tab to the first slide. Scoot it off the slide if you don't want it visible.
Somehow the control forces VBA to initialize, so events fire.
After I did this with your presentation, it fired off right away.

Allow People to Hide Slides in Read Only Mode

We distribute PowerPoint slides to educators who teach our content. We don't want people to modify the slides in any way so I have protected the slideshow with a password that restricts editing. Educators select 'Read Only' when the password prompt appears. The problem is that don't have the ability to hide slides in Read Only mode. This is a requirement. Is there any way to do this? Maybe using a VB Macro?