Bu soru olmuştur istendi önce , ancak her zaman kabul cevap basitçe kullanarak işlev açıklamaları sağlamak için bir istifa olduğunu Application.MacroOptions
( VBA6 ) ( VBA7 ), ama benim sorunu çözmez bu nedenle bu bilgiler aslında, bir ipucu olarak görünmüyor.
Amaç
Hepimizin arzuladığı şey, özel işlevleri herhangi bir yolla (VBA, VSTO veya COM eklentisi) tanımlayabilmek ve kullanıcıya işlevin ve parametrelerinin bir açılır / araç ipucu açıklamasından yararlanmasını sağlamaktır. her yerleşik Excel işlevi için satır içi veya formül çubuğunda görünür:
Bu ihtiyaca genel olarak kabul edilen cevap, özel işlevler için mümkün olmadığıdır, ancak bu inanca meydan okumak istiyorum.
Sorun
Şu anda, birinin yaptığını gördüğüm en iyi şey, işlevleri tanımlamaktır (genellikle yukarıdaki MacroOptions çağrısını kullanarak), böylece işlev iletişim kutusunu (formül çubuğundaki fx düğmesi) açarken işlev ve parametre açıklamaları aşağıdaki gibi görünür:
Gördüğünüz gibi, bu birçok parametresi olan karmaşık bir işlevdir. Kullanıcı bu "işlev bağımsız değişkenleri" diyaloğunun ve onu nasıl ortaya çıkaracağının farkında değilse ve bunun yerine yalnızca Excel'in standart araç ipucuna aşinaysa, yalnızca formül adını görür ve ek yardım almaz:
Bununla birlikte, gerekli parametreleri doğru şekilde sağlama şansları yoktur. (Elbette hiçbir kullanıcının okumadığı belgeleri okumadan.)
Şimdi, uzman bir kullanıcı Ctrl+ Shift+ yazarak Akendisine aşağıdaki gibi otomatik olarak tamamlanmış bir işlev parametreleri listesi verileceğini biliyor olabilir :
Ancak elbette, yukarıdakiyle aynı problemimiz var, standart excel kullanıcıları yalnızca ilk görüntüden varsayılan davranışa alışacak ve muhtemelen bu özelliği asla öğrenmemiş olacak.
Bu noktada bunun neden yeterli olmadığı ve her yerleşik işlevin sahip olduğu şeyi istediğimizi - kullanıcıya işlevi nasıl kullanacağını söyleyen sıralı araç ipucu - istediğimiz anlaşılmalıdır.
Tease
İlk başta, bunun yerel Excel uygulama işlevleri dışında mümkün olmadığına ikna olmuş olabilirim. Eklentiler ve VBA, genişletilebilirlik özellikleridir ve bu araç ipucu genişletilebilir olmayabilir. Ancak bu teori, Analiz Araç Paketi eklentisinin varlığıyla karşı karşıyadır. Elbette, Microsoft'ta yerleşiktir, ancak ANALYS32.xll, VB, C, C ++ ve C # ile üretilebilenler gibi bağımsız bir XLL eklentisidir. Elbette, bu XLL uygulamaya yüklendiğinde , kullanılabilir hale getirdiği işlevler yerel excel işlevleriyle aynı araç ipuçlarına sahiptir:
Elbette bu bilgi bir şekilde bu XLL dosyasında kodlanmış ve Excel'e aktarılmışsa, kendi Eklentilerimizle çoğaltmanın bir yolu var mı? Şimdi kendime biraz kaynak kod çözme hakkında öğretmeye başlayacağım ve analiz araç paketinde neler olup bittiğini tersine mühendislik yapıp yapamayacağımı görmeye başlayacağım.
Nasıl yardım edebilirsin
Bu sorunla ilgili halka açık tüm bilgileri araştırdığıma neredeyse eminim. Birisi bu konuda yardımcı olabilecek bilmediğim bir şey biliyorsa, rahatlıkla haber verin. Tersine mühendislik derlenmiş dll / xll'lere pek aşina değilim, bu nedenle birisi yerel Analysis32.xll kopyasını açıp açacaksa özel fonksiyon tanımlarında neler olup bittiğini bulmak için çok minnettar olurum. Aksi takdirde, tüm çıkmazlara ulaşana ve bulduğum şeyi geri bildirene kadar bunu kendim araştırmaya devam edeceğim.