PowerPoint VBA: which command (or set of commands) will create ppt frames from my .jpg images?

I have several .jpg files in C: \ my_folder

Here are their names: pic_1.jpg, pic_2.jpg, pic_3.jpg, pic_4.jpg, pic_5.jpg.

Which command or group of commands in Power Point VBA should I use to be able to automatically create multiple frames in PowerPoint so that each frame contains one image?

+4
source share
2 answers

This VBScript creates a new PowerPoint presentation and adds two slides to it, each with an image. You will need to adjust the location and size of the image to suit your taste. You will also need to use Scripting.FileScriptingObject to list your images if you want to automatically capture any images in the directory for embedding in the presentation. If you want your script to also be able to save the presentation by calling pptPresentation.SaveAs after creating the slides.

The MSDN documentation is at http://msdn.microsoft.com/en-us/library/ff746873.aspx .

 Dim pptDoc Dim pptPresentation Dim pptSlide Set pptDoc = WScript.CreateObject( "PowerPoint.Application" ) pptDoc.Visible = True Set pptPresentation = pptDoc.Presentations.Add( True ) ' Add a new slide with a blank layout to the end of the Slides collection ' 12 = ppLayoutBlank Set pptSlide = pptPresentation.Slides.Add( pptPresentation.Slides.Count + 1, 12 ) ' Add a picture into the slide, saving the picture into the PowerPoint document ' 10, 10 are the Left and Top coordinates respectively pptSlide.Shapes.AddPicture "c:\FullPath\1.JPG", False, True, 10, 10 ' Add another slide with a picture Set pptSlide = pptPresentation.Slides.Add( pptPresentation.Slides.Count + 1, 12 ) pptSlide.Shapes.AddPicture "c:\FullPath\2.jpg", False, True, 10, 10 
+6
source

Since the previous answer was specific to VBS scripts, here is the version for implementation in PowerPoint as a VBA macro. This was created using PowerPoint 2010.

This is a hard-coded directory, so read the search for the directory name for reading.

 Sub CreatePictureSlideshow( ) Dim presentation Dim layout Dim slide Dim FSO Dim folder Dim file Dim folderName ' Set this to point at the folder you wish to import JPGs from ' Note: make sure this ends with a backslash \ folderName = "c:\somedirectory\" ' Delete all slides and setup variables Set presentation = Application.ActivePresentation If presentation.Slides.count > 0 Then presentation.Slides.Range.Delete End If Set layout = Application.ActivePresentation.SlideMaster.CustomLayouts(1) Set FSO = CreateObject("Scripting.FileSystemObject") ' Retrieve the folder file listing and process each file Set folder = FSO.GetFolder(folderName) For Each file In folder.Files ' Filter to only process JPG images If LCase(Mid(file.Name, Len(file.Name) - 3, 4)) = ".jpg" Then ' Create the new slide and delete any pre-existing contents Set slide = presentation.Slides.AddSlide(presentation.Slides.count + 1, layout) While slide.Shapes.count > 0 slide.Shapes(1).Delete Wend ' Add the picture slide.Shapes.AddPicture folderName + file.Name, False, True, 10, 10 ' Optional: create a textbox with the filename on the slide for reference ' Dim textBox ' Set textBox = slide.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10, 200, 200) ' textBox.TextFrame.TextRange.Text = file.Name End If Next End Sub 
+4
source

Source: https://habr.com/ru/post/1340267/


All Articles