SORU
3 HAZİRAN 2013, PAZARTESİ


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:

enter image description here

enter image description here

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:

enter image description here

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:

enter image description here

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

enter image description here

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:

enter image description here

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
7 Temmuz 2013, Pazar


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ı

Function Description

ve işlevi seçerken, argüman yardım alıyoruz

Argument Help

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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • Facebook Developers

    Facebook Dev

    24 ŞUBAT 2009
  • Submissions101

    Submissions1

    23 ŞUBAT 2007