フォルダから複数の画像を挿入します。プログラムは、フォルダの先頭から開始し、降順でピクチャを挿入するはずですが、そうではありません。複数の画像をフォルダから降順に挿入する
最初の3〜5枚の写真はプレゼンテーションで最後に表示され、他のすべての表示は完全な順序です。
Sub createTransModel()
Dim oSlide As Slide
Dim oPicture As Shape
Dim myFile As String
Dim myFolder As String
Dim pptLayout As CustomLayout
Dim fileName As String
Dim rotSlide As Slide
Set pptLayout = ActivePresentation.Slides(1).CustomLayout
myFolder = GetFolderPath()
myFile = Dir(myFolder & "*.png")
Do While myFile <> ""
Set oSlide = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, _
ppLayoutBlank)
Set oPicture = oSlide.Shapes.AddPicture(myFile, _
msoFalse, msoTrue, 1, 1, _
ActivePresentation.PageSetup.SlideWidth, _
ActivePresentation.PageSetup.SlideHeight)
myFile = Dir
Loop
fileName = inputBox("Please enter the filename")
ActivePresentation.SaveAs (fileName & ".pps")
End Sub
Public Function GetFolderPath() As String
Dim myFile As Object
Dim fileSelected As String
Dim path As String
Dim objPPT As Object
Dim i As Integer
Dim folderFromPath As String
Dim directory As String
directory = "M:\tm\public\Conti_Anlage\Voith Proben"
Set myFile = Application.FileDialog(msoFileDialogOpen)
With myFile
.InitialFileName = directory
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then
Exit Function
End If
fileSelected = .SelectedItems(1)
End With
For i = Len(fileSelected) To 1 Step -1
If Mid(fileSelected, i, 1) = "\" Then
folderFromPath = Left(fileSelected, i)
Exit For
End If
Next
GetFolderPath = folderFromPath
End Function
スワップされた最初と最後のものがファイルダイアログで使用されているエクスプローラで交換されている可能性があります(回避方法が多すぎる古いバグです)。その場合、リストの最初と最後の項目を交換するだけです。 – Christoph
私もそのバグを持っていましたが、すでにそれを修正しました。コードではないが投稿した。そのバグはそれとは独立しているようです。 – Christian
これはあなたの問題ではありません。ファイルを手動でループしていて、ファイルダイアログで複数を選択していません。 – Christoph