Makrolar Kutusu ve Makrolar görünsün.

Katılım
22 Ekim 2004
Mesajlar
178
Merhabalar.
Aşağıdaki kodlarla makrolar kutusunun görünmemesini sağladım.
Fakat şimdi tekrar eski konumuna dönsün istiyorum.
Bu kodları henüz bitirmediğim bir çalışma dosyamda denedim.Daha sonra iptal etmek için araç çubukları üzerinde sağ tıklayıp modülden auto_open ve auto_close makrolarından bu kodları sildim ama yinede araç çubuklarında makrolar görünmüyor.
Yardımcı olursanız sevinirim.
Teşekkürler.
Kod:
Sub auto_open() 
Application.CommandBars("Worksheet Menu Bar").Controls(6).Controls("Makro").Enabled = False 
Application.OnKey "%{F11}", "mesaj" 
End Sub 

Sub auto_close() 
Application.CommandBars("Worksheet Menu Bar").Controls(6).Controls("Makro").Enabled = True 
Application.OnKey "%{F11}" 
End Sub 

Sub mesaj() 
MsgBox "Makrolar gizli!!" 
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
Başka bir dosyada sizin yukarıdaki auto_close prosedurunu yerleştirip, çalıştırın. Veya aşağıdakini deneyin;

Kod:
Sub Panzehir()
    Application.CommandBars("Worksheet Menu Bar").Reset
    Application.OnKey "%{F11}"
End Sub
Eğer kodları yerleştirmek için VBE kısmına ulaşamıyorsanız, aşağıdaki dosyayı indirip, açın.

Bu arada ufak bir hatırlatma;

İngilizce Office yüklü bir bilgisayarda kodlarınız hata verecektir çünkü, menülere "etiket - başlık" ile referans vermişiniz. Bunun yerine menünün ID özelliğini kullanırsanız İngilizce-Türkçe-... bütün versiyonlarda kodlar çalışır. Ayrıca, menülerini özelleştiren birisinin bilgisayarında menü çubuğunda 6ncı menü "Tools-Araçlar" menüsü olmayabilir ve bu nedenle de yine hata verebilir. Bu yüzden menülere her zaman ID'leri ile referans vermekte fayda vardır.

Aşağıdaki resimde görüldüğü gibi, "Makro" veya "Makrolar" menüsü/dialog kutusu veya kod sayfası yani VBE (Visual Basic Editor)'ün kendisi Excel'in çeşitli yerlerinden aktive edilebilir. Ã?rneğin, sayfa sekmesi üzerinde farenin sağ tuşuna basarak, Excel'in menü çubuğundaki Excel ikonunun üzerinde farenin sağ tuşuna basarak, normal yollarlla menülerden, Visual Basic araç çubuğundan, ....

Bu durumda benim önerim aşağıdaki gibidir;

Kod:
Sub Auto_Open()
    Application.CommandBars.FindControl(ID:=30017).Enabled = False
    Application.CommandBars.FindControl(ID:=186).Enabled = False
    Application.CommandBars.FindControl(ID:=1561).Enabled = False
    Application.CommandBars("Ply").FindControl(ID:=1561).Enabled = False
    Application.CommandBars("Document").FindControl(ID:=1561).Enabled = False
    Application.CommandBars("Visual Basic").Enabled = False
    Application.CommandBars("Control ToolBox").Enabled = False
    Application.OnKey "%{F11}", "Mesaj"
    Application.OnKey "%{F8}", "Mesaj"
End Sub
'
Sub Auto_Close()
    Application.CommandBars.FindControl(ID:=30017).Enabled = True
    Application.CommandBars.FindControl(ID:=186).Enabled = True
    Application.CommandBars.FindControl(ID:=1561).Enabled = True
    Application.CommandBars("Ply").FindControl(ID:=1561).Enabled = True
    Application.CommandBars("Document").FindControl(ID:=1561).Enabled = True
    Application.CommandBars("Visual Basic").Enabled = True
    Application.CommandBars("Control ToolBox").Enabled = True
    Application.OnKey "%{F11}"
    Application.OnKey "%{F8}"
End Sub
'
Sub Mesaj()
    MsgBox "Makrolar gizli!!"
End Sub
Dip Not:
Eğer amaç kullanıcıdan makroları gizlemekse; makroların olduğu modulün en üstüne aşağıdaki satırı yerleştirdiğinizde, kullanıcı bahsettiğiniz menüler aktifken bile sözkonusu moduldeki makrolar listelenmez. Çünkü o modül tıpkı sayfa veya UserForm modulleri gibi "Private-Ã?zel" bir modül olacaktır.

Tabii, bütün bunlar kullanıcının en başta makroları aktif ederek dosyayı açmasına bağlıdır. Buna karşı da basit bir kaç önlem alınabilir tabii...

Kod:
Option Private Module
 
Katılım
22 Ekim 2004
Mesajlar
178
Yardımlarınız için çok teşekkür ederim.Sorunu çözdüm.
İyi çalışmalar.
 
Üst