Pertanyaan ini telah ditanyakan sebelumnya , tetapi setiap kali jawaban yang diterima hanyalah pengunduran diri untuk memberikan deskripsi fungsi menggunakan Application.MacroOptions
( VBA6 ) ( VBA7 ), tetapi informasi ini tidak benar-benar muncul sebagai tooltip, jadi itu tidak menyelesaikan masalah saya.
Hasil
Apa yang kita semua inginkan adalah untuk dapat mendefinisikan fungsi kustom dengan cara apapun (VBA, VSTO, atau add-in COM) dan memberikan pengguna manfaat dari deskripsi pop-up / tool-tip dari fungsi dan parameternya, seperti muncul untuk setiap fungsi Excel bawaan, baik sebaris atau di bilah rumus:
Jawaban yang diterima secara luas untuk kebutuhan ini adalah bahwa itu tidak mungkin untuk fungsi adat, tetapi saya ingin menantang kepercayaan itu.
Masalah
Saat ini, hal terbaik yang pernah saya lihat dilakukan orang adalah mendefinisikan fungsi (sering kali menggunakan panggilan MacroOptions di atas) sehingga saat membuka dialog fungsi (tombol fx di bilah rumus) fungsi dan deskripsi parameternya muncul seperti di bawah ini:
Seperti yang Anda lihat, ini adalah fungsi yang rumit dengan banyak parameter. Jika pengguna tidak mengetahui dialog "argumen fungsi" ini dan cara memunculkannya, dan hanya akrab dengan tooltip standar Excel, mereka hanya akan melihat nama rumus dan tidak ada bantuan tambahan:
Dengan itu mereka tidak memiliki kesempatan untuk memberikan parameter yang diperlukan dengan benar. (Tanpa membaca dokumentasi, yang tentu saja tidak pernah dilakukan oleh pengguna.)
Sekarang, pengguna yang mahir mungkin tahu bahwa dengan mengetik Ctrl+ Shift+ A, mereka akan diberikan daftar parameter fungsi yang dilengkapi secara otomatis seperti:
Tetapi tentu saja, kami memiliki masalah yang sama seperti di atas yaitu bahwa pengguna excel standar hanya akan terbiasa dengan perilaku default dari gambar pertama dan mungkin tidak akan pernah mempelajari fitur itu.
Harus jelas pada titik ini mengapa ini tidak cukup dan kami menginginkan apa yang dimiliki setiap fungsi bawaan - tip alat in-line yang memberi tahu pengguna bagaimana menggunakan fungsi tersebut.
The Tease
Pada awalnya, saya mungkin yakin bahwa ini tidak mungkin kecuali dengan fungsi aplikasi Excel asli. Add-in dan VBA adalah fitur yang dapat diperpanjang, dan tip alat ini mungkin tidak dapat diperpanjang. Tetapi teori itu tertantang oleh keberadaan add-in Analysis Toolpak. Tentu, ini dibangun di Microsoft, tetapi ANALYS32.xll adalah add-in XLL mandiri seperti yang dapat diproduksi di VB, C, C ++, dan C #. Benar saja, ketika XLL ini dimuat ke dalam aplikasi, fungsi yang disediakannya memiliki tip alat yang sama dengan fungsi excel asli:
Tentunya jika informasi ini entah bagaimana dikodekan dalam file XLL ini dan diteruskan ke Excel, ada cara untuk menirunya dengan Add-in kita sendiri? Sekarang saya berada pada titik di mana saya akan mulai belajar sedikit tentang dekompilasi dan melihat apakah saya dapat merekayasa balik apa pun yang terjadi di toolpak analisis.
Bagaimana Anda Dapat Membantu
Saya hampir yakin bahwa saya telah meneliti semua informasi yang tersedia untuk umum tentang masalah ini. Jika seseorang mengetahui sesuatu yang saya tidak tahu yang mungkin dapat membantu dengan hal ini, jangan ragu untuk ikut campur. Saya sangat tidak terbiasa dengan dlls / xlls yang dikompilasi dengan rekayasa terbalik, jadi jika seseorang merasa ingin membuka salinan lokal Analysis32.xll dan mencari tahu apa yang terjadi dengan definisi fungsi kustomnya, saya akan sangat berterima kasih. Jika tidak, saya akan terus menggali ini sendiri sampai saya menemukan jalan buntu dan melaporkan kembali apa yang saya temukan.
Jawaban:
Saya telah memposting proyek bukti konsep ke GitHub sebagai Excel-DNA IntelliSense , menerapkan ini.
Menggunakan kelas Otomasi UI untuk memantau kejadian antarmuka pengguna Excel yang sesuai, formulir ditampilkan bila sesuai.
Kode tersebut dibungkus sebagai Excel-DNA add-in , dan berfungsi pada mesin Excel 2013 / Windows 8 saya. Saya telah menguji satu konfigurasi lain (64-bit Excel 2010 di Windows Server 2008) dan mengalami masalah serius.
Untuk fungsi C # yang ditentukan dengan atribut Excel-DNA seperti ini:
kami mendapatkan kedua deskripsi fungsi
dan saat memilih fungsi, kami mendapatkan bantuan argumen
Kelihatannya bagus, tetapi semuanya masih sangat tidak stabil, hanya berfungsi di mesin saya dan terkadang membuat Excel crash. Ini mungkin permulaan, meskipun ...
Pembaruan 9 Mei 2014:
Saya telah membuat beberapa kemajuan untuk mengetahui bagaimana membuat argumen membantu bekerja di bawah versi Excel dan Windows yang lebih lama. Namun, masih membutuhkan kerja keras yang lumayan banyak agar semuanya bisa diandalkan. Siapapun yang ingin membantu dengan ini harus menghubungi saya secara langsung.
Pembaruan 18 Juni 2016:
Dukungan Excel UDF IntelliSense untuk add-in Excel-DNA dan fungsi VBA sekarang sedang diuji. Lihat halaman Memulai di GitHub untuk instruksi.
sumber
Bagaimana tentang
Apakah ini dapat diterima?
Ini sedikit jelek tapi lebih mudah.
sumber
Apa itu XLL?
Bagaimana Anda mengembangkan XLL?
Di mana saya dapat menemukan panduan cepat untuk membuat XLL sederhana?
Bagaimana saya mendapatkan tooltips?
pxArgumentText, pxFunctionHelp, pxArgumentHelp1
Sayangnya, add-in Analysis Toolpak juga tidak memiliki tooltips.
Solusi saya salah, tetapi dengan informasi yang salah diposting oleh poster asli. Menampilkan gambar dengan BINOMDIST, jika link nya dengan jelas menunjukkan bahwa ini bukan fungsi ANALYS32.xll.
Ini berarti saya mencoba untuk memecahkan pertanyaan yang tidak mungkin. Karena tidak ada XLL yang bisa melakukan apa yang diminta poster. Jika Anda menemukan versi Excel yang menampilkan keterangan alat XLL, beri tahu saya.
Tentang apa yang ditanyakan poster, mencoba meniru perilaku XLL, saya yakin jawaban saya adalah yang paling benar dalam kaitannya dengan apa yang ANALYS32.xll lakukan.
sumber