azurillia

Gelişen
Katılım
2 Ekim 2025
Mesajlar
1
Beğeniler
0
Herkese merhaba. Konuyu doğru alt kategoride açtığımı düşünüyorum. X Üniversitesi’nde tıp fakültesi öğrencisiyim. Yarın tamirden alacağım laptopta PowerPoint üzerinde VBA ile her açılan slaytı otomatik olarak bilgisayarda bir klasöre kaydedecek bir sistem denemek istiyorum. Bu konuda çok bilgim yok, internetten rehberleri takip ederek yazmaya çalıştım.
İzlediğim adımlar:
  1. PowerPoint görev çubuğunda Developer sekmesini açmak.
  2. Boş bir sunu açıp makro destekli PowerPoint dosyası olarak kaydetmek.
  3. Developer sekmesinden Visual Basic Editor kısmını açmak.
  4. Aşağıdaki kodları sınıf modülüne eklemek:

    Kod:
    Public WithEvents App As Application
    
    Private Sub App_PresentationOpen(ByVal Pres As Presentation)
        On Error Resume Next
        Dim SavePath As String
        Dim FileName As String
       
        SavePath = "C:\KendiKlasorYolun\"
        FileName = "Sunum_" & Format(Now, "yyyymmdd_hhnnss")
       
        Pres.SaveCopyAs SavePath & FileName & ".pptx"
    End Sub

  5. Aşağıdaki kodları standart modüle eklemek:

    Kod:
    Public gAppEvents As EventClassModule
    
    Sub Auto_Open()
        Set gAppEvents = New EventClassModule
        Set gAppEvents.App = Application
    End Sub
    
    Sub Auto_Close()
        Set gAppEvents.App = Nothing
        Set gAppEvents = Nothing
    End Sub

  6. Dosyayı PPAM olarak kaydetmek.
  7. Eklentiler menüsünden bu PPAM dosyasını yüklemek.

    Amaç: Açılan her slaytın bilgisayarda belirtilen klasöre otomatik olarak kaydedilmesini sağlamak. Şu an test etme imkanım olmadığı için yarın kısa bir sürede denemek üzere forumdan yardım almak istedim. Burada hata var mı, varsa nasıl düzeltmeliyim?

    Hazırladığım adımlar bu şekilde. Test için zamanım sınırlı olduğundan, kodda veya yöntemde hata olup olmadığını öğrenmek istiyorum. Yardımcı olacak herkese şimdiden teşekkür ederim.
 
Son düzenleyen: Moderatör:
Herkese merhaba. Konuyu doğru alt kategoride açtığımı düşünüyorum. X Üniversitesi’nde tıp fakültesi öğrencisiyim. Yarın tamirden alacağım laptopta PowerPoint üzerinde VBA ile her açılan slaytı otomatik olarak bilgisayarda bir klasöre kaydedecek bir sistem denemek istiyorum. Bu konuda çok bilgim yok, internetten rehberleri takip ederek yazmaya çalıştım.
İzlediğim adımlar:
  1. PowerPoint görev çubuğunda Developer sekmesini açmak.
  2. Boş bir sunu açıp makro destekli PowerPoint dosyası olarak kaydetmek.
  3. Developer sekmesinden Visual Basic Editor kısmını açmak.
  4. Aşağıdaki kodları sınıf modülüne eklemek:

    Kod:
    Public WithEvents App As Application
    
    Private Sub App_PresentationOpen(ByVal Pres As Presentation)
        On Error Resume Next
        Dim SavePath As String
        Dim FileName As String
       
        SavePath = "C:\KendiKlasorYolun\"
        FileName = "Sunum_" & Format(Now, "yyyymmdd_hhnnss")
       
        Pres.SaveCopyAs SavePath & FileName & ".pptx"
    End Sub

  5. Aşağıdaki kodları standart modüle eklemek:

    Kod:
    Public gAppEvents As EventClassModule
    
    Sub Auto_Open()
        Set gAppEvents = New EventClassModule
        Set gAppEvents.App = Application
    End Sub
    
    Sub Auto_Close()
        Set gAppEvents.App = Nothing
        Set gAppEvents = Nothing
    End Sub

  6. Dosyayı PPAM olarak kaydetmek.
  7. Eklentiler menüsünden bu PPAM dosyasını yüklemek.

    Amaç: Açılan her slaytın bilgisayarda belirtilen klasöre otomatik olarak kaydedilmesini sağlamak. Şu an test etme imkanım olmadığı için yarın kısa bir sürede denemek üzere forumdan yardım almak istedim. Burada hata var mı, varsa nasıl düzeltmeliyim?

    Hazırladığım adımlar bu şekilde. Test için zamanım sınırlı olduğundan, kodda veya yöntemde hata olup olmadığını öğrenmek istiyorum. Yardımcı olacak herkese şimdiden teşekkür ederim.
Görünüşe göre kodunuz büyük ölçüde doğru görünüyor, ancak birkaç noktayı kontrol etmek ve potansiyel hataları ele almak iyi olabilir:

1. Dosya Yolu: SavePath değişkeninin doğru bir klasör yoluna işaret ettiğinden emin olun. C:\KendiKlasorYolun\ kısmını gerçek bir klasör yolu ile değiştirdiğinizden emin olun.

2. Olaylar: App_PresentationOpen olayı her sunum açıldığında tetiklenir. Ancak sunumun kapanması veya başka bir olay sırasında kodunuzun herhangi bir hata almadığından emin olun. Örneğin, On Error Resume Next kullanıyorsunuz, bu, hata alınsa bile kodun çalışmaya devam etmesine izin verir. Bu, hata ayıklamada sorun yaratabilir.

3. Eklenti ve Güvenlik Ayarları: Eklentinin doğru bir şekilde yüklendiğinden ve PowerPoint ayarlarının makroları çalıştırmaya izin verdiğinden emin olun.

4. Farklı Formatlarda Kaydetme: Kodunuz şu an sadece .pptx formatında kaydediyor. Eğer PDF gibi diğer formatları da kullanmak isterseniz, ilgili kodu eklemeniz gerekebilir.

5. Test Altyapısı: Yazdığınız kodu test etmek için küçük bir sunumu açarak denemiş olmanız faydalı olabilir. Beklenmedik durumlar için bir günlükleme mekanizması eklemeyi düşünün, böylece hangi durumların gerçekleştiğini daha iyi görebilirsiniz.

Bu önerilere dikkat ederek kodunuzu test edebilirsiniz. Bol şans!