Paramterbeschreibung eigener Funktionen
01.09.2008 12:16:00
Reinhard
von Michael Schwimmer ist der nachstehende Code.
Er funktioniert, aber nicht beim ersten Mal, d.h., füge ich über Einfügen---Funktion die Funktion "Functionstest" ein, so erscheinen die Parameter "A,B,C" ohne Beschreibung.
Drücke ich nun auf "Ok", ohne was einzugeben, so erscheint "#Wert" in der Zelle. Gehe ich nun nochmals über Einfügen--Funktion so kommt das Eingabefensterchen der Funktion mit den Parametern "Variant1,Variant2,Variant3" und auch der Hilfstext pro Parameter wird korrekt angezeigt.
Was kann man machen damit dies so sofort beim ersten "Einfügen--Funktion" geschieht?
Danke ^ Gruß
Reinhard
Option Explicit
Public Function Functionstest$(a, b, c)
'Dummy-Funktion, um das Prinzip zu zeigen
Functionstest = "Argument a=" & a & _
", Argument b=" & b & ", Argument c=" & c
End Function
Public Sub Funktionsbeschreibung()
Dim strFunktionsname$, strParameter$
Dim strDummy$
Dim strKategorie$, strBeschreibung$
Dim strArgumentbeschreibung$(1 To 3)
Dim strAnf$, strÜbergabe$, strKomma$
strAnf = """": strKomma = ","
'Jede beliebige API - Funktion
'kann benutzt werden. Sie muss nur
'in der entsprechenden .dll vorhanden
'sein. Gross und -Kleinschreibung beachten.
strDummy = "kernel32" & strAnf & "," _
& strAnf & "GetACP"
'Der Name der zu beschreibenden Funktion
strFunktionsname = "Functionstest"
'Die zukünftigen Parameternamen
strParameter = "Variant1,Variant2,Variant3"
'Die Kategorie
strKategorie = "Neuer Eintrag"
'Hier kommt die allgemeine Beschreibung hin
strBeschreibung = "Die übergebenen Parameter werden angezeigt"
'Die Beschreibung einzelner Parameter
strArgumentbeschreibung(1) = _
"Der erste Parameter "
strArgumentbeschreibung(2) = _
"Der zweite Parameter "
strArgumentbeschreibung(3) = _
"Der dritte Parameter "
'Der String für das Excel4 Makro wird erstellt
strÜbergabe = "REGISTER(" & strAnf & _
strDummy & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & strFunktionsname & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & strParameter & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & "1" & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & "" & strKategorie & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strKomma
strÜbergabe = strÜbergabe & strKomma & _
strAnf & strBeschreibung & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & strArgumentbeschreibung(1) _
& strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & strArgumentbeschreibung(2) _
& strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & strArgumentbeschreibung(3) _
& ". " & strAnf
strÜbergabe = strÜbergabe & ")"
'Das Excel4 Makro wird gestartet
Application.ExecuteExcel4Macro strÜbergabe
End Sub
Public Sub UnregisterFunctionsbeschreibung()
Dim strFunktionsname$
Dim strAnf$, strÜbergabe$, strKomma$
Dim strDummy$
'Hier wird die Beschreibung gelöscht
strAnf = """": strKomma = ","
strDummy = "kernel32" & strAnf & "," & _
strAnf & "GetACP"
strFunktionsname = "Functionstest"
strÜbergabe = "REGISTER(" & strAnf & _
strDummy & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strAnf & strFunktionsname & strAnf
strÜbergabe = strÜbergabe & strKomma & _
strKomma & "0)"
Application.ExecuteExcel4Macro strÜbergabe
strÜbergabe = "UNREGISTER(" & strFunktionsname & ")"
Application.ExecuteExcel4Macro strÜbergabe
End Sub