This is top of head code but might give you a pointer
Sub PicWithCaption() Dim xFileDialog As FileDialog Dim xPath As String, xFile As String, xFileName As String Dim oSlide As Slide Dim oShape As Shape Dim i As Long, j As Long Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) xFileDialog.Title = "Select a folder with pictures" If xFileDialog.Show = -1 Then xPath = xFileDialog.SelectedItems(1) If xPath <> "" Then xFile = Dir(xPath & "\*.*") j = 0 Do While xFile <> "" If UCase(Right(xFile, 3)) = "PNG" Or _ UCase(Right(xFile, 3)) = "TIF" Or _ UCase(Right(xFile, 3)) = "JPG" Or _ UCase(Right(xFile, 4)) = "JPEG" Or _ UCase(Right(xFile, 3)) = "GIF" Or _ UCase(Right(xFile, 3)) = "BMP" Then xFileName = Left(xFile, Len(xFile) - 4) If j Mod 6 = 0 Then Set oSlide = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, ppLayoutBlank) ActiveWindow.View.GotoSlide oSlide.SlideIndex End If i = j Mod 3 If j Mod 6 < 3 Then Set oShape = oSlide.Shapes.AddPicture(FileName:=xPath & "\" & xFile, _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoTrue, _ Left:=100 + i * 150, _ Top:=100) oShape.LockAspectRatio = msoCTrue oShape.Width = 120 oShape.Select False Set oShape = oSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, _ Left:=100 + i * 150, _ Top:=oShape.Top + oShape.Height + 10, _ Width:=120, _ Height:=20) oShape.Select False oShape.TextFrame.TextRange.Text = xFileName oShape.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignCenter Else Set oShape = oSlide.Shapes.AddPicture(FileName:=xPath & "\" & xFile, _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoTrue, _ Left:=100 + i * 150, _ Top:=250) oShape.LockAspectRatio = msoCTrue oShape.Width = 120 oShape.Select False Set oShape = oSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, _ Left:=100 + i * 150, _ Top:=oShape.Top + oShape.Height + 10, _ Width:=120, _ Height:=20) oShape.TextFrame.TextRange.Text = xFileName oShape.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignCenter oShape.Select False End If j = j + 1 If j Mod 6 = 0 And j <> 0 Then With ActiveWindow.Selection.ShapeRange.Group .Left = ActivePresentation.PageSetup.SlideWidth / 2 - .Width / 2 .Ungroup End With End If. End If xFile = Dir() Loop End If End If End Sub





Reply With Quote