Ben bir makro ile içinde makro olan bir şablonu çalıştırdıktan ve ondaki makroyu çalıştırdıktan sonra içindeki makroyu silmek istiyorum. Yardımcı olursanız sevinirim.
Ne demek istediğinizi tam anlamadım ama anlayabldiğim kadarıyla aşağıdaki kodları önermek istedim....
Bu kodları Module1 isimli modulün içine yerleştirin ve daha sonra da Test isimli proseduru çalıştırın.
Test isimli proseduru çalıştırdığınızda, modüldeki MyMacro isimli prosedur çalıştırılacak ve ardından da, modülden silinecektir.
İlgili kodlar aşağıdadır;
[vb:1:eda83fc842]Sub Test()
Dim MyModule As Object
Dim MyProc As String, ProcName As String
Dim LineStart As Integer, NoOfLines As Integer, StartOfProc As Integer
Call MyMacro
'
Set MyModule = ThisWorkbook.VBProject.VBComponents("Module1")
MyProc = "MyMacro"
'
With MyModule.CodeModule
LineStart = .CountOfDeclarationLines + 1
Do Until LineStart >= .CountOfLines
ProcName = .ProcOfLine(LineStart, 0)
LineStart = LineStart + .ProcCountLines(.ProcOfLine(LineStart, 0), 0)
If ProcName = MyProc Then Exit Do
Loop
End With
NoOfLines = MyModule.CodeModule.ProcCountLines(MyProc, 0)
StartOfProc = MyModule.CodeModule.ProcStartLine(MyProc, 0)
MyModule.CodeModule.DeleteLines StartOfProc, NoOfLines
MsgBox "[MyMacro] isimli prosedur silindi..."
ThisWorkbook.Save
Set MyModule = Nothing
End Sub
'
Sub MyMacro()
MsgBox "[MyMacro] isimli prosedur calistirildi...." & vbCrLf & vbCrLf _
& " Simdi, [MyMacro] isimli prosedur silinecek..."
End Sub
[/vb:1:eda83fc842]
Makro içinde makro sildirmek mümkün mü? Biraz daha açay
Ekteki tutunak adlı excel dosyasındaki makrolar data diye bir diğer excel sayfasındaki makro tarafından çalıştırılıyor belge oluşturuluyor sonra ben tutunak içindeki makroların silinmesini istiyorum.
Yardımcı olursanız sevinirim.
Ãimdiden teşekkürler...
Bir önceki mesajımda anlattım silinecek makroyu içeren tutanak.xls de ekte yardımcı olursanız sevinirim.
Yani Data.xls içindeki makro tutanak.xls içindeki makroyu çalıştıracak ve silecek
Ekli zip dosyasını açın ve içindeki A.xls ve B.xls dosyalarının her ikisini de açın.
Daha sonra, A.xls dosyasındaki RunBMacro isimli proseduru çalıştırın.
Bu prosedur, diğer B.xls dosyasındaki Test isimli proseduru çalıştıracak ve daha sonra, bu prosedurun içinde bulunduğu Module1 isimli kod modulünü, dosyadan silecektir.
Ã?rnek dosyaların yer aldığı *.zip dosyası ektedir.
On the Tools menu, point to Macro, and then click Security.
On the Trusted Sources tab, select or clear the Trust access to Visual Basic Project check box.
Çok teşekkür ederim.
Ãimdide şunu soracaktım. Ben bu makroların içeriği gözükmemesi için vbproject i kilitlemiştim. bu kilit olunca da bu silme işi gerçekleşmiyor. bu vbproject lockunu kodla açtırabilirmiyiz yoksa onlarca dosyadan lock'u kaldırmakla uğraşacağım ve kodlar görünecek. aslında görünmesinin mahzuru yok ama yapılabilir mi?
Ãimdiden teşekkürler.
Sizlere daha iyi bir deneyim sunabilmek icin sitemizde çerez konumlandırmaktayız, web sitemizi kullanmaya devam ettiğinizde çerezler ile toplanan kişisel verileriniz Veri Politikamız / Bilgilendirmelerimizde belirtilen amaçlar ve yöntemlerle mevzuatına uygun olarak kullanılacaktır.