Berikut jawaban yang lebih teknis dan menyeluruh untuk pertanyaan lama: Visual Basic for Applications (VBA) dan Visual Basic (pre-.NET) bukan hanya bahasa yang serupa, mereka adalah bahasa yang sama . Secara khusus:
- Mereka memiliki spesifikasi yang sama : Deskripsi implementasi-independen dari apa bahasa mengandung dan apa artinya. Anda dapat membacanya di sini: [MS-VBAL]: Spesifikasi Bahasa VBA
- Mereka memiliki platform yang sama : Keduanya mengkompilasi ke Microsoft P-Code , yang pada gilirannya dieksekusi oleh mesin virtual yang sama persis, yang diimplementasikan dalam dll msvbvm [x.0] .dll.
Dalam buku referensi VB lama yang saya temui tahun lalu, penulis (Paul Lomax) bahkan menegaskan bahwa 'VBA' selalu menjadi nama bahasa itu sendiri, apakah digunakan dalam aplikasi yang berdiri sendiri atau dalam konteks tertanam (seperti MS Office ):
"Sebelum kita melangkah lebih jauh, mari kita perjelas poin mendasar. Visual Basic for Applications (VBA) adalah bahasa yang digunakan untuk memprogram dalam Visual Basic (VB). VB sendiri adalah lingkungan pengembangan; elemen bahasa dari lingkungan itu adalah VBA. "
Perbedaan kecil
Hosted vs. stand-alone : Secara praktis, istilah, ketika kebanyakan orang mengatakan "VBA", mereka secara spesifik berarti "VBA ketika digunakan di MS Office", dan mereka mengatakan "VB6" berarti "VBA yang digunakan dalam versi terakhir VBA mandiri. kompiler (yaitu Visual Studio 6) ". IDE dan kompiler yang dibundel dengan MS Office hampir identik dengan Visual Studio 6, dengan batasan yang tidak memungkinkan kompilasi untuk berdiri sendiri dll atau file exe. Ini pada gilirannya berarti bahwa kelas yang ditentukan dalam proyek VBA tertanam tidak dapat diakses dari konsumen COM yang tidak tertanam, karena mereka tidak dapat didaftarkan.
Pengembangan yang berkelanjutan : Microsoft berhenti memproduksi kompiler VBA yang berdiri sendiri dengan Visual Studio 6, ketika mereka beralih ke .NET runtime sebagai platform pilihan. Namun, tim MS Office terus mempertahankan VBA, dan bahkan merilis versi baru (VBA7) dengan VM baru (sekarang baru disebut VBA7.dll) dimulai dengan MS Office 2010. Satu-satunya perbedaan utama adalah bahwa VBA7 memiliki keduanya 32- dan versi 64-bit dan memiliki beberapa peningkatan untuk menangani perbedaan antara keduanya, khususnya yang berkaitan dengan permintaan API eksternal.