Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Funkcje użytkownika w Excelu
zibiw




Typ: neutral
Postów: 9
Zarejestrowany: Jul 2004
Funkcje użytkownika w Excelu

Napisałem funkcję która działa poprawnie ale chciałbym aby przy jej wstawianiu wyświetlany był krótki opis funkcji oraz każdego z jej argumentów.
Tak jak w Standartowych funkcjach.
Nie mam niestety najmniejszego pojęcia jak to zrobić.


_____________________________________________
zbigniew w.

16-07-2004 18:26
Pokaż profil zibiw  Wyślij email do zibiw        7129445
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Bez narzędzi developerskich tego nie zrobisz


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

17-07-2004 09:54
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

Przykład funkcji:

W sekcji ThisWorkbook
Private Sub Workbook_Open()
Dim TEKST As String
TEKST = "Tekst który ma się pojawić w okienku wstawiania funkcji"
Application.MacroOptions Macro:="OBLICZ", Description:=TEKST
End Sub

Możesz dopisać także parametr Category:= od 1 do 9
1 Finanse
2 Data i czas
3 Matematyczne
itd...


W sekcji Module
Function OBLICZ(Pierwsza_Liczba As Range, Druga_Liczba As Range) As Variant
Application.Volatile
OBLICZ = Pierwsza_Liczba + Druga_Liczba
End Function


Niestety ale opisów do poszczególnych argumentów jeszcze nie znalazłem, ale może...


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

20-07-2004 21:59
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

A to już w pełni działający przykładzik na dwóch funkcjach stworzonych przez użytkownika w osobnej kategorii

W sekcji module wkleić poniższy tekst:
'----------------------
Option Explicit
' tu musi zostać wskazana bezwzględna ścieżka dostępu do biblioteki user32.dll
Const Lib = """C:\WINDOWS\system32\user32.dll"""
Option Base 1


' funkcja dodawania
Private Function DODAWANIE(N1 As Double, N2 As Double) As Double
  Application.Volatile
  DODAWANIE = N1 + N2
End Function


'funkcja dzielenia
Private Function DZIELENIE(N10 As Double, N20 As Double) As Double
  Application.Volatile
  DZIELENIE = N10 / N20
End Function


'autorejestracja funkcji
Private Sub Auto_open()
' Poszczególne opisy argumentów mają ograniczenia do 38 znaków
' rejestracja pierwszej funkcji w nowej kategorii DODATKOWE_FUNKCJE
  Zarejestruj "DODAWANIE", 3, "Liczba nr 1,Liczba nr 2", 1, "DODATKOWE_FUNKCJE", _
    "Dodawanie dwóch komórek reprezentujących liczbę pierwszą i liczbę drugą", """Podaj pierwszą liczbę"",""Dodaj pierwszą do drugiej  """, _
    "CharPrevA"
  '
  'rejestracja drugiej funkcji
  '
  Zarejestruj "DZIELENIE", 3, "DZIELNA,DZIELNIK", 1, "DODATKOWE_FUNKCJE", _
    "Dzielenie dwóch komórek reprezentujących Dzielnik i dzielna", """Dzielna"",""Dzielnik  """, _
    "CharNextA"
 
End Sub

'
Private Sub Zarejestruj(FunctionName As String, NbArgs As Integer, _
  Args As String, MacroType As Integer, Category As String, _
  Descr As String, DescrArgs As String, FLib As String)
 
  Application.ExecuteExcel4Macro _
  "REGISTER(" & Lib & ",""" & FLib & """,""" & String(NbArgs, "P" ) _
  & """,""" & FunctionName & """,""" & Args & """," & MacroType _
  & ",""" & Category & """,,,""" & Descr & """," & DescrArgs & " )"

End Sub

'-------------------------

[Post edytowany dnia 21-07-2004 18:17 przez Piotr T]


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

21-07-2004 16:03
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003


...
Application.MacroOptions Macro:="OBLICZ", Description:=TEKST
...


Chylę czoła PiotrzeT

Kiedyś szukałem tego sporo czsu i nie mogłem znaleźć. Znalazłem dopiero po zainstalowaniu pakietu developerskiego...

Być może to zależy od wersji office'a...?

Pozdrowienia dla experta


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

21-07-2004 19:04
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Ja też chylę czoła Piotrze, bardzo mi się podoba 


_____________________________________________
Karolina

21-07-2004 22:37
Pokaż profil karolinavb  Wyślij email do karolinavb   
anonim




Typ: Nie zarejestrowany

W excelu 97 niestety nie działa

22-07-2004 09:44
  
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004



W excelu 97 niestety nie działa


Działa i to na 100% i w Excelu 2000 i 97 w wersji Standart.
Zapewne nie zmieniłeś ścieżki dostępu do biblioteki user32.dll

'----------------------
' tu w stałej Const Lib musi zostać wskazana bezwzględna ścieżka dostępu do biblioteki user32.dll ze wszystkimi średnikami

Const Lib = """C:\WINDOW\Ssystem32\user32.dll"""


znajdź w systemie tą bibliotekę i wpisz właściwą ścieżkę dostępu

Pozdrowionka dla reszty ekspertów



_____________________________________________
Visual Basic.NET - Mercedes dla programistów

22-07-2004 21:39
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
anonim




Typ: Nie zarejestrowany

DZIAŁA przepraszam za wygodnictwo
Pozdo dla experta PiotraT
NARA

23-07-2004 07:31
  
Wszystkich odpowiedzi: 8 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1