Bir sayfa için "makroları etkinleştirmeden" önce bir Excel makrosu nasıl incelenir / görüntülenir?


13

Bazen kullanmam gereken bir makro içeren bir xls dosyası alıyorum. Gönderene tam bir güven duymuyorsam, gerçekten sadece olması gerekeni yaptığını doğrulamak için makronun kaynağına bakmak isterim.

Bununla birlikte, Excel 2010'da "makroları görüntüle" altındaki "düzenle" düğmesi, sayfa için ilk olarak makroları etkinleştirmediğim sürece devre dışı bırakılır - ancak makroları ilk kez etkinleştirirsem, en çok, yalnızca bu kod bittikten sonra kötü amaçlı kod hakkında bilgi edinebilirim çalışan ...

Belge için makroları etkinleştirmeden önce makronun kaynağını nasıl görüntüleyebilirim?

Yanıtlar:


13

Belgeye katıştırılmış Visual Basic yordamlarına kolay erişim sağlamak için Word'deki Geliştirici sekmesini kullanarak bir belgedeki tüm makrolara göz atabilirsiniz.

Önce Geliştirici Sekmesinin etkinleştirildiğinden emin olmanız gerekir. Dosya -> Seçenekler'e gidin ve ardından:

geliştirici sekmesi

Şimdi görünmesi gereken Geliştirici Sekmesinde artık Visual Basic düzenleyicisine ulaşmak için tıklayabileceğiniz bir "Visual Basic" düğmesi olmalıdır.

Düzenleyicinin solundaki belge ağacına göz atarak, ilk önce makroları etkinleştirmeye gerek kalmadan belgeye gömülü olan tüm kod ve modülleri görebilmeniz gerekir.

Bunu güvenmediğim belgelerle yapmaya meyilliyim.

Not: Bunu Word'de yaptım, aynı özellik Excel'de kullanılabilir ve etkinleştirme seçeneği aynı yerde.


9

2003'ten bu yana tüm Office uygulamalarının tüm sürümlerinde ve muhtemelen daha önce, Alt+ F11VBA Düzenleyicisi'ni açar. Office 2007 için Şerit'teki ve daha yeni bir sürümün çalışması için 'Geliştirici' sekmesini etkinleştirmeye gerek yoktur.


2
Birçok sürümde (en azından Excel), Alt+ işaretinin kaybolmasına F11neden olabileceğini ve bu da kod yürütmenin etkinleştirildiğini belirtmek gerekir. Bu yanıltıcı. Bir modül ile bir belge oluşturarak bunu demo yapabilirsiniz . Sen mümkün olacak + ve olay ateş olmadan kodlarını incelemek. ! SECURITY WARNING ... Enable Contenton_open()AltF11
Peter Vandivier

0

Mokubai ve hBy2Py'nin yanıtları harika görünse de, gerçekten de VBA Düzenleyicisini göstermenize izin veriyor olsa da, en azından Microsoft Office Professional Plus 2016'dan Excel'de kodu görüntülemenize izin vermiyor gibi görünüyor .

Bu sürüme sahibim ve kötü niyetli bir XLS aldım ve incelemek istedim. Excel'de açtıktan sonra, her zamanki gibi güvenli modda açıldı ve elbette bu modu reddetme niyetim yoktu. Diğer katılımcıların belirttiği gibi VBA Editör'ü açtığımda bana boş VBA Editör verildi . XLS dosyasını henüz kapatmadım, ancak "Proje gezgini" paneli yararlı bir şekilde "Açık proje yok" gösterdi . Sadece test uğruna, ikinci belgeyi (işimden biri) açtım ve hemen VBA Editör'de ortaya çıktı ve (düzgün) herhangi bir VBA'dan tamamen yoksun. Ancak, internetten gelen belge VBA Editör'de listelenmemiştir .

Neden böyle olduğunu anlamaya çalışırken biraz zaman harcadım ve hiçbir neden bulamadım. Belge güvenli modda yüklendiğinde Excel sürümümün VBA modüllerini VBA Düzenleyicisi'ne göndermediği anlaşılıyor. Ne yazık ki, VBA Editor bazı "Office Belgesinden VBA aç" özelliğinden yoksundur, bu yüzden Excel'in burada beyin olduğu ve XLS'in ilk önce paketini açması / kodunu çözmesi gerekir.

Çözüm oldukça basit çıktı.

  1. Tıklayın Ribbon-> Developer->MacroSecurity
  2. alternatif olarak, File-> Options-> SecurityCenter(son seçenek grubu) -> Settings-> Macros)
  3. Mevcut ayarların ne olduğunu hatırlayın (veya not edin)
  4. Bunları "Bildirim yapmadan tüm makroları engelle" olarak değiştirin
  5. Belgeyi onaylayın, kapatın, yeniden açın, VBA Editör'ü yeniden açın
  6. Ateşle oynamayı bitirdiğinizde orijinal ayarları geri yükleyin

Etkileri:

  • bildirim gösterilmedi
  • belge tamamen yüklendi
  • hiçbir makro yürütülmedi
  • VBA Editor modülleri aldı ve tüm kodu sundu

Merak ediyorsanız: evet, gerçekten kötü niyetli, küçük bir örnek:

Function marcopoloko()
marcopoloko = Left("CM to inches converter", 2) + Right("fed.ex", 4) + "e  " + "/c" + numneroop + amagilocard
End Function

'Sub Workbook_Open()
'If xlTickMarkOutside > 0 Then
'Shell marcopoloko + """", xlXmlExportSuccess
'End If
'End Sub

BTW. Gördüğünüz gibi, makroların bir süre sonra çalışmasına izin vermem durumunda, giriş noktasını hemen yorumladım ve belgeyi yeniden kaydettim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.