Belgeyi Makrosuz kaydetmek?

Katılım
19 Şubat 2010
Mesajlar
62
Excel Vers. ve Dili
2003-TR
Merhaba arkadaşlar,

Ufak tefek kodlar hariç bir çoğuna yabancıyım. Sizlerin hazırladığı örnekleri inceleyerek ve hazır kodları kullanarak bir proje hazırlıyorum ve neredeyse sona geldim. Eksikleri de, basit sorularla sizi yormayacak şekilde tamamlamaya çalışıyorum. Umarım kızmıyorsunuzdur. Eğer rahatsızlık veriyorsam affola.

Şu anki sıkıntım. Belgenin macrosuz olarak kaydedilmesiyle ilgili. Usurform ile işim bitince üzerindeki farklı kaydet butonuna basıyorum ve belgeyi kaydediyorum ancak kaydedilen dosyayı açtığımda macrolarda haliyle devreye giriyor. İnternetten üzerindeki macroları silerek belgeyi kaydeden bir kod yumağı buldum ama excel için hazırlanış. Bunu worde göre düzenlerseniz yada farklı bir şekilde nasıl yapabileceğimin yolunu gösterirseniz çok sevinirim.

İyi çalışmalar.

Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If ThisWorkbook.Path <> "" And SaveAsUI Then
        Set VBComps = ActiveWorkbook.VBProject.VBComponents
        For Each VBComp In VBComps
            Select Case VBComp.Type
                Case 100
                    With VBComp.CodeModule
                        .DeleteLines 1, .CountOfLines
                    End With
                Case Else
                    VBComps.Remove VBComp
            End Select
        Next VBComp
        Set VBComps = Nothing
    End If
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bir modül ekleyin ve aşağıdakileri, modülün içine yapıştırın...

Kod:
Sub AutoClose()
    If ThisDocument.Path <> "" Then
        Set VBComps = ThisDocument.VBProject.VBComponents
        For Each VBComp In VBComps
            Select Case VBComp.Type
                Case 100
                    With VBComp.CodeModule
                        .DeleteLines 1, .CountOfLines
                    End With
                Case Else
                    VBComps.Remove VBComp
            End Select
        Next VBComp
        Set VBComps = Nothing
    End If
End Sub
 
Üst