Bagaimana cara memeriksa / melihat makro Excel sebelum "mengaktifkan makro" untuk sheet?

13

Saya menerima sesekali file xls yang berisi makro yang harus saya gunakan. Jika saya tidak memiliki kepercayaan penuh pada pengirim, saya ingin melihat sumber makro untuk memverifikasi bahwa ia memang hanya melakukan apa yang seharusnya.

Namun, di Excel 2010 tombol "edit" di bawah "lihat makro" dinonaktifkan kecuali jika saya mengaktifkan makro terlebih dahulu untuk sheet - tetapi jika saya mengaktifkan makro lebih dulu maka saya dapat, paling banyak, mengetahui tentang kode berbahaya hanya setelah kode tersebut selesai berlari ...

Bagaimana saya bisa melihat sumber makro sebelum mengaktifkan makro untuk dokumen?

GJ.
sumber

Jawaban:

13

Anda dapat melihat semua makro di dokumen dengan menggunakan tab Pengembang di Word untuk memberi Anda akses mudah ke rutinitas Visual Basic yang tertanam dalam dokumen.

Pertama, Anda perlu memastikan bahwa Tab Pengembang diaktifkan. Buka File -> Opsi lalu:

tab pengembang

Pada Tab Pengembang yang sekarang akan muncul sekarang harus ada tombol "Visual Basic" yang dapat Anda klik untuk sampai ke editor Visual Basic.

Menjelajah melalui pohon dokumen di sebelah kiri editor Anda harus dapat melihat semua kode dan modul yang tertanam dalam dokumen tanpa terlebih dahulu harus mengaktifkan makro.

Saya cenderung melakukan ini dengan dokumen yang tidak saya percayai.

Catatan: Saya sudah melakukan ini di Word, fitur yang sama tersedia di Excel dan opsi untuk mengaktifkannya ada di tempat yang sama.

Mokubai
sumber
9

Di semua versi semua aplikasi Office sejak 2003, dan mungkin sebelumnya, Alt+ F11akan membuka VBA Editor. Tidak perlu mengaktifkan tab 'Pengembang' di Ribbon untuk Office 2007 dan yang lebih baru agar ini berfungsi.

hBy2Py
sumber
2
Perlu dicatat bahwa di banyak versi (setidaknya Excel), Alt+ F11dapat menyebabkan ! SECURITY WARNING ... Enable Contentspanduk " " menghilang, menyiratkan bahwa eksekusi kode sekarang diaktifkan. Ini menyesatkan. Anda dapat memperagakan ini dengan membuat dokumen dengan on_open()modul. Anda akan dapat Alt+ F11masuk dan memeriksa kodenya tanpa menjalankan acara.
Peter Vandivier
0

Sementara jawaban dari Mokubai dan hBy2Py tampak hebat dan memang memungkinkan Anda untuk menunjukkan Editor VBA, tampaknya setidaknya di Excel dari Microsoft Office Professional Plus 2016 masih tidak membiarkan Anda melihat kode.

Saya kebetulan memiliki versi itu, dan saya yakin saya menerima XLS berbahaya dan ingin memeriksanya. Setelah membukanya di Excel, dibuka dalam mode aman seperti biasa dan tentu saja saya tidak berniat mengabaikan mode itu. Ketika saya membuka VBA Editor seperti yang ditunjukkan responden lain, saya diberi ... VBA Editor kosong . Panel "Project explorer" membantu menampilkan "Tidak ada proyek terbuka" meskipun saya belum menutup file XLS. Demi pengujian, saya membuka dokumen kedua (salah satu pekerjaan saya) dan segera muncul di VBA Editor dan (benar) sama sekali tidak memiliki VBA. Namun, dokumen dari internet tidak terdaftar di VBA Editor .

Saya membuang-buang waktu untuk mencari tahu mengapa begitu, dan tidak menemukan alasan. Tampaknya edisi Excel saya tidak mengirim modul VBA ke Editor VBA ketika dokumen dimuat dalam mode aman. Sayangnya, VBA Editor tidak memiliki beberapa fitur "VBA terbuka dari Office Document", jadi jelas bahwa Excel adalah otak di sini dan harus membongkar / mendekode / apa pun XLS terlebih dahulu.

Solusi ternyata cukup sederhana.

  1. Klik Ribbon-> Developer->MacroSecurity
  2. sebagai alternatif, File-> Options-> SecurityCenter(grup opsi terakhir) -> Settings-> Macros)
  3. Ingat (atau tuliskan) apa pengaturan saat ini
  4. Ubah mereka menjadi "Blokir semua makro tanpa pemberitahuan"
  5. Konfirmasikan, tutup, buka kembali dokumen, buka kembali VBA Editor
  6. Kembalikan ke pengaturan awal saat Anda selesai bermain dengan api

Efek:

  • notifikasi tidak muncul
  • dokumen telah dimuat sepenuhnya
  • tidak ada makro dieksekusi
  • Editor VBA mendapatkan modul dan mempresentasikan semua kode

Jika Anda penasaran: ya, itu memang berbahaya, contoh kecil:

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. seperti yang Anda lihat, saya segera berkomentar titik masuk dan menyimpan kembali dokumen, kalau-kalau saya mengizinkan makro untuk berjalan di beberapa titik waktu kemudian.

quetzalcoatl
sumber