• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

PowerPoint Macrosunu Güncelleme Hk.

  • Konbuyu başlatan Konbuyu başlatan dacobh
  • Başlangıç tarihi Başlangıç tarihi
Katılım
11 Ocak 2018
Mesajlar
1
Excel Vers. ve Dili
2013 ve 2016
Merhaba arkadaşlar, işimin gereği resimler için kullandığımız bir makromuz mevcuttur, fakat macroyu tam bilemediğim için sizlerden yardım rica ediyorum. Saha ekibimiz için Google drive üzerinden 600 civarı klasör oluşturduk ve klasörlerin ismine mağaza isimlerini verdik. O klasörlerin içinde de mağazaların resimleri bulunmakta. Mevcutta olan macromuz şu şekilde çalışmaktadır bir klasörü seçtiğimizde belli bir slayt formatı ile her resimi bir slayda ortaya ekleyerek ve resmin ismini başlık olarak yapmaktadır. Sorunumuz bu resimleri yeniden klasör ismi ile isimlendirmem gerekiyor buda bize zaman kaybettiriyor örn TEKNOSA MAĞAZASI ---> 1234.JPG. Yapmak istediğim makronun tek seferde klasörlerin içindeki resimleri alıp slayda eklemesi ve klasörün ismini başlık olarak almasıdır. Çözümleriniz için şimdiden çok teşekkürler. Kodu aşağıdadır. Sunum dosyasını isterseniz mailinize gönderebilirim.

Kod:
Public isim As String
Public altyazı As String
Public adet As Integer
Public adres As String

Sub HhpPower()

Dim xtop As Integer
xtop = ActivePresentation.Slides(2).Shapes(3).Top
Dim xleft As Integer
xleft = ActivePresentation.Slides(2).Shapes(3).Left
Dim xheigth As Integer
xheigth = ActivePresentation.Slides(2).Shapes(3).Height
Dim xWidth As Integer
xWidth = ActivePresentation.Slides(2).Shapes(3).Width


adres = "C:\Users\daco\Desktop\Mağazalar"
adres = InputBox("Kaynak Dosyayını Aşağıdan Değiştirebilirsiniz!", "Fotografların Bulunduğu Klasör", adres)
altyazı = "A5 Live Dummy"
altyazı = InputBox("Slayt Alt Bilgisi?", "Display Raporu Hangi Cihaz")
adres = adres + "\"

Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim i As Integer
Dim isim2 As String
Dim uzunluk As Integer
Dim strTemp As String
Dim strPath As String
Dim strFileSpec As String
Dim oSld As Slide
Dim oPic As Shape




Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(adres)
i = 2
For Each objFile In objFolder.Files
    
    isim = objFile.Name
 i = i + 1
strPath = adres
strFileSpec = "*.jpg"
'strTemp = Dir(strPath & strFileSpec)
strPath = adres
ActivePresentation.Slides(2).Copy
ActivePresentation.Slides.Paste
ActivePresentation.Slides(i).Select
Set oSld = ActivePresentation.Slides(i)

isim2 = Left(isim, Len(isim) - 4)
isim2 = UCase(isim2)
'isim2 = a.Substring(0, isim.Length - a.LastIndexOf("."))
ActivePresentation.Slides(i).Shapes(1).TextFrame.TextRange.Text = isim2
ActivePresentation.Slides(i).Shapes(2).TextFrame.TextRange.Text = altyazı
    Set oPic = oSld.Shapes.AddPicture(FileName:=strPath & isim, _
    LinkToFile:=msoFalse, _
    SaveWithDocument:=msoTrue, _
    Left:=0, _
    Top:=0, _
    Width:=-1, _
    Height:=-1)
   With oPic
      .LockAspectRatio = msoFalse
      .Height = xheigth
      .Width = xWidth
      .Left = xleft
      .Top = xtop
  End With
  
  
Next objFile


ActivePresentation.Slides(2).Delete

MsgBox ("İşlem Tamamlanmıştır, Şuanki dosyayı farklı kaydederek elinizdeki 'HHp-Powerpoint' dosyasını kalıp olarak kullanmaya devam edebilirsiniz!")
ActivePresentation.Slides(1).Select
End Sub


Sub ekle()

Dim strTemp As String
Dim strPath As String
Dim strFileSpec As String
Dim oSld As Slide
Dim oPic As Shape




For i = 2 To adet


strPath = "C:\Users\trada25\Desktop\res\"
strFileSpec = "*.jpg"
strTemp = Dir(strPath & strFileSpec)
strPath = "C:\Users\trada25\Desktop\res\"


ActivePresentation.Slides(1).Copy
ActivePresentation.Slides.Paste


Set oSld = ActivePresentation.Slides(i)
    Set oPic = oSld.Shapes.AddPicture(FileName:=strPath & strTemp, _
    LinkToFile:=msoFalse, _
    SaveWithDocument:=msoTrue, _
    Left:=0, _
    Top:=0, _
    Width:=-1, _
    Height:=-1)
   With oPic
      .LockAspectRatio = msoFalse
      .Height = ActivePresentation.PageSetup.SlideHeight - 200
      .Width = ActivePresentation.PageSetup.SlideWidth - 200
      .Left = 100
      .Top = 100
  End With
  
Next i

End Sub
 
Son düzenleme:
Geri
Üst