Kurumsal IT-Teknoloji Eğitimleri-Eğitim Takvimi

Excel Makrolarla PowerPoint Sunumunu Otomatik Hazırlamak

Bu uygulama için ihtiyacımız olacak programlar Excel ve Power Point olacaktır. Bilgisayarda kayıtlı Sunum Raporu.xlsm Excel dosyası ve Power Point(Master.pptx) dosyalarını kullanacağız.

Rapor Excel dosyasında Alt+F11 tuşlarına basılarak Vusial Basic Editörüne Geçilir.

Inser menüsünden Module eklenerek gelen ekrana gerekli kodlar yazılır.

Kod yazımına başlamadan önce PowerPoint dosyasına bağlantı kurmamızı sağlayacak kodlar için gerekli olacak Referanslar Tools menüsünden References sekmesinden eklenir.

Eklenmesi gereken referanslar;

 

 

Insert sekmesinden eklediğimiz modüle içerisine kodları yazmaya başlıyoruz.

Sub Send_To_PPT()

Dim activeSlide As PowerPoint.Slide

file = "C:\Users\muhammet.tek\Desktop\Makale\Power Point Bağlantı\Master.pptx"

Set pptApp = CreateObject("PowerPoint.Application")

Set pptPres = pptApp.Presentations.Open(file)

End sub

activeSlide değişkenine PowerPoint slaytı için değişkeni tanımladık ve daha önceden hazırladığımız Master adındaki Power Point dosyasının yolunu File değişkenine atadık. File olarak tanımlı olan dosyanın(Master.pptx) dosyasının açılmasını sağladık.

 

Kodun devamında:

pptApp.ActivePresentation.Slides.Add pptPres.Slides.Count + 1, ppLayoutText

Master Power Point dosyasında yeni Slayt eklendi.

pptApp.ActiveWindow.View.GotoSlide pptPres.Slides.Count

Yeni eklenen slayt ekrana getirildi.

 

 

Set activeSlide = pptApp.ActivePresentation.Slides(pptApp.ActivePresentation.Slides.Count)

Ekrana getirilen slayt activeSlide değişkenine atandı. Slayt ile ilgili işlemleri bu değişken adıyla gerçekleştirilecek.

activeSlide.Shapes(2).Delete

Slayttaki 2. Şekil silindi.

activeSlide.Shapes(1).TextFrame.TextRange.Text = Sheets("Karadeniz").Range(“A1”)

Şekil 1 yani Başlık alanına exceldeki A1 hücresinde yazılı olan Karadeniz Bölge yazısı yazdırıldı.

Sheets("Karadeniz").Select

Excel dosyasındaki Karadeniz sayfasının seçilmesi sağlandı.

ActiveSheet.Shapes(1).Copy

Aktif sayfadaki şekil 1 yani grafiğin seçilmesi sağlandı.

 

activeSlide.Shapes.PasteSpecial(ppPasteMetafilePicture).Select

Power Point’te slayt’a yapıştırıldı.

pptApp.ActiveWindow.Selection.ShapeRange.Left = 40

Soldan hizalaması yapıldı.

pptApp.ActiveWindow.Selection.ShapeRange.Top = 96

Üstten hizalaması yapıldı.

activeSlide.Shapes(3).Height = 220

activeSlide.Shapes(3).Width = 500

Yükseklik ve genişlik ayarlaması yapıldı.

activeSlide.Shapes.Range(3).Align msoAlignCenters, msoTrue

Slayt içerisindeki hizalaması yapıldı.

 

Kodlamanın tüm hali:

 

Excel dosyasındaki diğer sayfadaki raporlar içinde kodlama geliştirilirse. Hazırlanması saatlerce sürecek olana PowerPoint sunumları dakikalar hatta saniyeler içerinde hazırlanmış olur.

 

MUHAMMET TEK