Excel özel işlev arayışı tooltip
Bu soru olmuştur asked beforeama her zaman kabul cevabı basit bir istifa sağlamak görev tanımları kullanarak Application.MacroOptions
(VBA6) (VBA7), ama bu Bilgi değil aslında göründüğü gibi bir araç ipucu, öyle değil çözmek benim sorunum.
Amaç
Ne hepimizin arzusudur tanımlar özel fonksiyonları ile herhangi bir araç (VBA, VSTO, veya COM eklenti) ve kullanıcı yararına bir pop-up/araç ipucu açıklama fonksiyonu ve parametrelerini gibi görünür her yerleşik Excel işlevi, satır içi ya da formül çubuğu:
Bu ihtiyaca yaygın olarak kabul gören cevabı özel fonksiyonlar için mümkün değildir, ama bu inanç meydan okumak istiyorum.
Sorun
Şu anda, en iyi gördüm kimse ne olduğunu tanımlamak için fonksiyonları (sık sık kullanarak yukarıdaki MacroOptions çağrı) böylece getirme işlevi iletişim (fx düğmesini formula bar) kendi fonksiyon ve parametre açıklamaları aşağıdaki gibi görünür:
Gördüğünüz gibi, bu çok parametre ile karmaşık bir işlevdir. Eğer kullanıcı farkında değil bu "fonksiyon bağımsız değişkenleri" diyalog ve nasıl konuyu açmak, ve bunun yerine tanıdık sadece Excel standart araç ipucu, onlar sadece görmek formül adı ve Ek Yardım:
Hangi doğru gerekli parametreleri sağlamak için hiçbir şansları yoktur. Tabii ki (hangi belgeleri okumadan, hiçbir kullanıcı Hiç Yok.)
Şimdi, bir güç kullanıcı yazarak o biliyor olabilirCtrlShiftBirotomatik tamamlanmış gibi işlev parametre listesi: a verilmiş olacaktır
Ama tabii ki, standart excel kullanıcıların yalnızca ilk görüntü varsayılan davranışı için kullanılır ve muhtemelen asla bu özelliği öğrenmiş olur yukarıdaki gibi aynı sorun var.
Bu yeterli değil mi neden bu noktada açık olmalıdır ve her işlev için inşa etti, ne işlevi nasıl kullanıcı söyler satırı aracı - ipucu istiyoruz.
Tease
İlk başta, bu sadece yerel Excel uygulama fonksiyonları dışında mümkün değil ikna olabilirdim. Eklentiler ve genişletilebilirlik özellikleri VBA ve araç ipucu bu sadece genişletilebilir olmayabilir. Ama bu teori Takımı'nın Analizi varlığını meydan. Elbette, Microsoft yerleşik, ama ANALYS32.xll bağımsız bir XLL eklenti VB üretilebilir olanlar gibi, C, C , C#. Bu XLL uygulama yüklendiğinde emin yeterli, kullanılabilir hale functions yerli excel fonksiyonları araç ipuçlarını aynısından:
Eğer bu Bilgi bir şekilde bu XLL dosyası kodlanmış ve Excel geçti ise mutlaka bizim ile çoğaltmak için bir yol eklentiler var mı? Kendimi biraz öğretimi çözümleme araç paketi içinde her ne oluyorsa-ters mühendislik miyim vermeyeceksiniz ve görmek başlayacağım noktada artık benim.
Nasıl Yardımcı Olabilirsiniz
Bu sorun hakkında kamuya açık bütün bilgileri araştırdım neredeyse eminim. Eğer birisi bir şey biliyorsa bu olsa yardımcı olabileceğini bilmiyorum, lafa girebilirsin. Eğer birisi Analysis32 kendi yerel kopyasını açarken, isterse o kadar-tersine mühendislik derlenmiş DLL / xlls aşina değilim.xll ve özel işlev tanımları ile ne bulmaktan çok müteşekkir olurum. Aksi takdirde, sadece bir çıkmaz çarptı, bir şey bulursam haber olduğum kadar kendimi bu konuyu araştırmaya devam edeceğim.
CEVAP
Proof-of-concept proje Excel-DNA IntelliSense proje GitHub için, bu uygulama gönderdiniz.
UI Otomasyon sınıfları uygun Excel kullanıcı arayüzü olayları izlemek için kullanarak, bir form uygun olduğunda görüntülenir.
Kod Excel-DNA bir eklenti olarak paketlenir ve 2013 / my Excel Windows üzerinde çalışır 8 makine. Bir diğer yapılandırma (Windows Server 2008 64-bit Excel 2010) üzerinde test edilmiş ve ciddi bir sorun yaşadım.
C# fonksiyon Excel-DNA ile tanımlanan bu gibi özelliklere sahiptir:
[ExcelFunction(Description =
"A useful test function that adds two numbers, and returns the sum.")]
public static double AddThem(
[ExcelArgument(Name = "Augend",
Description = "is the first number, to which will be added")]
double v1,
[ExcelArgument(Name = "Addend",
Description = "is the second number that will be added")]
double v2)
{
return v1 v2;
}
her iki işlev açıklaması
ve işlevi seçerken, argüman yardım alıyoruz
Bu güzel görünüyor, ama yine de çok tuhaf değil, sadece benim makine üzerinde çalışıyor ve bazen Excel çöküyor. Bir başlangıç olabilirdi...
Güncelleme 9 Mayıs 2014:
Bazı ilerlemeler argüman eski Excel ve Windows sürümleri altında çalışmak yardımcı olmak için nasıl sergiyi yaptım. Ancak, hala işe çok güvenilir her şeyi almak gerekiyor. Yardım etmek isteyen herkes benimle doğrudan irtibata geçiniz.
Böyle büyük mükafat 4.2 - '...�...
Tanımlama özel attrs...
Nasıl yönlendirme değişiklikleri devle...
Nasıl VBA kullanmadan Excel ters dize ...
Bir değer içinde bir yeni satır nasıl ...