Saya tahu bahwa mungkin untuk memanggil kode .NET dari kode VBA Anda, tetapi mengapa VBA terus ada? Satu-satunya alasan yang bisa saya pikirkan adalah warisan.
Saya hanya perlu mengurutkan Scripting.Dictionary
dan jumlah kode yang dibutuhkan menakutkan.
IDE terlihat seperti Visual Studio 2003. Dan ada banyak detail kecil, yang membuat Anda gila (Seperti mengubah garis, dan mendapatkan peringatan karena beberapa kesalahan kompilasi). Atau, jika Anda membuka lebih dari satu spreadsheet, itu bercampur dengan Anda "VBAProject" dan ini benar-benar membingungkan.
Seluruh modul / classmodule / form pembagian sebenarnya tidak terlalu buruk, tapi saya berakhir setiap saat dengan langsung menulis logika dalam bentuk, atau memiliki satu modul besar yang menangani semuanya.
Mengapa saya tidak bisa menekan Alt + F11, dan meretas di C #?
Jawaban:
Microsoft Office memiliki banyak cara untuk memungkinkan Anda mengubah / meningkatkan perilaku default secara terprogram. VBA adalah bahasa teruji pertempuran, terbukti dan luas untuk skrip in-doc. Banyak orang kantor tahu VBA dan menggunakannya, sementara mereka tidak tahu bahasa pemrograman yang lebih kompleks seperti C #. Office tidak akan dijual sebanyak jika pelanggan harus menulis ulang banyak dokumen yang diaktifkan makro yang melakukan hal-hal penting bisnis - setelah mereka mempelajari bahasa baru atau apa pun. Kompatibilitas mundur adalah fitur utama!
Setumpuk .NET penuh untuk Office kemungkinan memerlukan beberapa set manajemen ketergantungan (dll: s, dll) dan akan dengan mudah menjadi berat untuk dikelola untuk tugas-tugas sederhana - ini bukan alternatif untuk skrip yang ringan. VSTO memberi Anda kemampuan untuk menggunakan C #, tetapi dengan harga siklus pengembangan plugin yang lebih berat.
Seorang manajer program di Microsoft telah menulis tentang ini di sini . Sudah jelas bahwa VBA masih dan akan ada untuk keperluan skrip kecil.
sumber
Yah, jawabannya tidak sepenuhnya "warisan". Jawabannya adalah VBA bukan VB6 atau VB.Net: VBA. Bahasa yang terpisah, tetapi terkait. Jika diganti VBA dengan VB.Net itu pasti akan merusak banyak DOKUMEN.
Mengganti VBA dengan VB.Net hampir pasti akan menghasilkan kehilangan data bagi sejumlah besar pengguna produk utama mereka - bukan hal yang baik.
Dan target pasar mereka untuk VBA bukan programmer.
sumber
Jika Anda mempertimbangkan alasan utama orang membeli Office adalah untuk menjaga kompatibilitas dengan semua dokumen yang ada, banyak di antaranya memiliki makro dan VBA di dalamnya, itu akan menjadi Microsoft yang sangat berani untuk memperlakukan pengguna seperti mereka melakukan kerumunan VB6 dan memberitahu mereka untuk menyedotnya dan mulai coding dalam. NET, lihat saja permintaan uservoice # 1 yang pernah ada !
Saya membayangkan orang-orang LibreOffice akan menghibur diri mereka sendiri sampai tidak sadar!
VBA adalah untuk produktivitas di Office, bukan "pemrograman". Hari Anda membutuhkan lebih banyak kekuatan dari dokumen Anda adalah hari Anda menyewa seorang programmer untuk menulis ulang semuanya. Saya kira alasan lain adalah mengapa macro Visual Studios juga tidak .NET - anggap objek COM devenv4 tidak jauh berbeda dengan VBA.
sumber
Saya pikir ada sedikit perbedaan, tetapi penting, antara warisan dan popularitas . Dan ketika Anda telah melakukan banyak kontrak seperti yang saya miliki, Anda belajar bahwa VBA sangat populer :) Saya tidak bisa memberi tahu Anda berapa banyak kontrak yang telah saya lakukan untuk "joki Excel" yang tidak tahu apa-apa tentang pemrograman tetapi dapat menghancurkan VBA seperti itu masalah hidup atau mati.
sumber