Add-In Otomatisasi Fungsi Buatan Pengguna (UDF) Excel 1 dengan Penginstal terintegrasi, keduanya ditulis dalam VB.Net
Solusi lengkap Microsoft Visual Studio 2022 dan kode sumber proyek.
Termasuk penginstal untuk Office / Excel 32-Bit dan 64-Bit.
Klik Rilis > Aset untuk contoh yang dibuat sebelumnya.
Fungsi Buatan Pengguna (UDF) Excel yang dikembangkan di VB.Net telah ada selama bertahun-tahun, contoh awalnya meliputi -
http://www.cpearson.com/Excel/CreatingNETFunctionLib.aspx
https://www.codeproject.com/Articles/7753/Create-an-Automation-Add-In-for-Excel-using-NET
Meskipun fungsi-fungsi ini berfungsi dengan baik, penerapannya bisa lebih bermasalah, terutama jika pengguna akhir mungkin tidak mengetahuinya, atau diizinkan menjalankan utilitas baris perintah seperti Regasm untuk menyelesaikan instalasi.
Oleh karena itu, tujuan desain untuk proyek ini adalah: -
PC Windows dengan perangkat lunak berikut diinstal diperlukan untuk membangun solusi
Direkomendasikan 'build baru' untuk semua komponen di atas, pada PC pengembangan khusus jika memungkinkan, dan dengan semua pembaruan diterapkan.
Visual Studio harus menginstal item berikut
Utilitas berikut berguna untuk memeriksa proses Pendaftaran, namun tidak wajib.
Add-In Otomatisasi didaftarkan selama proses instalasi.
Nilai yang berbeda perlu ditulis ke Registri untuk Office versi 32-Bit dan 64-Bit.
Kelas penginstal menyediakan nilai-nilai ini, Properti Tindakan Kustom diatur untuk versi yang diperlukan di setiap proyek penginstal.
Proyek penginstal Office 32-Bit dan 64-Bit terpisah disediakan dan harus dibuat untuk setiap versi yang diperlukan.
Visual Studio menghasilkan dua file keluaran, setup.exe
dan AUTO_INSTALLER_nn.msi
dari setiap proyek Penginstal
Salah satu dari file ini dapat didistribusikan ke, dan dijalankan oleh pengguna akhir, untuk diinstal dan dihapus instalasinya sesuai kebutuhan.
Setelah menjalankan penginstal, pengguna perlu mengonfigurasi Excel untuk mengaktifkan Add-In Otomatisasi.
Dari Excel > File > Opsi > Add-In > Kelola Add-In Excel
Klik Otomatisasi, gulir ke bawah dan pilih OTOMATISASI.Fungsi
Klik OK untuk mengonfirmasi
Dua contoh rumus Excel disediakan
=IFX()
dalam sel Lembar Kerja mengembalikan string teks AUTO FX OK
=TIMENOW()
dalam sel Lembar Kerja mengembalikan waktu saat ini dengan milidetik misalnya 12:34:56.789
Ini adalah fungsi 'Volatile' dan akan menghitung ulang ketika tombol F9 ditekan atau sel lain berubah.
Fungsi yang ditawarkan oleh Add-In dapat dicantumkan dengan mengklik Rumus > Sisipkan Fungsi dan memilih AUTOMATION.Functions sebagai kategori
Pengguna dapat menghapus instalasi Add-In dengan mengklik kanan tombol Start Windows dan memilih Aplikasi dan Fitur
Gulir ke bawah ke Automation FX dan pilih Uninstall
Modul kelas Installer.vb
melakukan Registrasi Majelis dan pembaruan Registri yang diperlukan ketika pengembang atau pengguna akhir menjalankan program penginstal .exe atau .msi.
Tag <System.ComponentModel.RunInstaller(True)>
disediakan secara otomatis oleh vb.net dalam file Installer.Designer.vb
ketika modul kelas Installer baru ditambahkan ke proyek.
Tag ini digunakan oleh program penginstal untuk memanggil Public Overrides Sub Install(stateSaver As IDictionary)
melalui Properti Tindakan Kustom dalam proyek AUTO_INSTALLER_32 dan AUTO_INSTALLER_64.
Sub Install
kemudian memanggil RegisterAssembly
yang secara fungsional setara dengan menjalankan RegAsm.exe
secara manual.
RegAsm.exe
sendiri menggunakan metode yang diekspos oleh RegistrationServices 3
Poin-poin berikut harus selalu diperhatikan untuk menghindari terjadinya konflik pembaruan Registri selama pengembangan dan pengujian.
Dalam proyek AUTO_FUNCTIONS > Properties, opsi di bawah ini tidak boleh dipilih kapan pun.
Register for COM Interop
di bagian Kompilasi Make assembly COM-Visible
di bagian Aplikasi > Informasi Perakitan Tag <ComRegisterFunction>
dan <ComUnRegisterFunction>
juga tidak boleh digunakan dalam modul apa pun.
Di setiap proyek > Properti Output Utama, Daftar harus disetel ke vsdrpDoNotRegister
Pembuatan Produksi baru harus dikembangkan untuk memastikan bahwa semua GUID unik dan semua pembaruan, referensi, dan dependensi Visual Studio disertakan.
https://support.microsoft.com/en-us/topic/excel-com-add-ins-and-automation-add-ins-91f5ff06-0c9c-b98e-06e9-3657964eec72 ↩
https://learn.microsoft.com/en-us/dotnet/framework/interop/registering-assemblies-with-com ↩
https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.registrationservices?view=netframework-4.8.1 ↩