[ Pobierz całość w formacie PDF ]

inteligencji krzemowej na białkową.
64 Rozdział 5. f& Przykłady
Rysunek 5.6.
Dodanie opisu do
funkcji użytkownika
nie jest trudne.
Zaufaj mi
Rysunek 5.7.
Kto powiedział,
że w okno Member
Options należy wpisać
pomoc do funkcji
użytkownika? Możemy
co najwyżej założyć,
że jest to zalecane
Przykład 20. Określenie właściwości makra/funkcji za pomocą VBA
Wróćmy już do VBA. Nareszcie.
Skorzystaj z metody MacroOptions. Dla obiektu Application ma ona wiele argu-
mentów. Część z nich jest pomijana. Najważniejsze dla nas argumenty są użyte
w poniższej procedurze:
Macro  podaje nazwę funkcji (makra), do którego odnosi się Twoje działanie.
Description  wyświetla tekst wprowadzony przez Ciebie w oknie Member
Options.
Category  przypisuje Twoją funkcję do odpowiedniej kategorii funkcji, zgodnie
z tabelą 5.1.
Sub definiuj_funkcję()
tekst = "Konwertuje stopnie wg skal Celsjusza, Fahrenheita i Kelvina."
tekst = tekst & vbCrLf & "Jako argumentu jed_wejściowa i jed_wyjściowa
użyj:"
tekst = tekst & vbCrLf & "'C' dla stopni Celsjusza,"
tekst = tekst & " 'K' dla stopni Kelvina oraz"
tekst = tekst & " 'F' dla stopni Fahrenheita."
Application.MacroOptions Macro:="konwertuj", _
Description:=tekst, Category:=3
End Sub
Przykład 21. Wstawianie funkcji arkuszowej do arkusza za pomocą VBA 65
Tabela 5.1. Kategorie funkcji i wartości argumentu Category metody MacroOptions
Kategoria funkcji Wartość argumentu Category
Finansowe 1
Daty i czasu 2
Matematyczne 3
Statystyczne 4
Wyszukiwania i adresu 5
Bazy danych 6
Tekstowe 7
Logiczne 8
Informacyjne 9
Użytkownika Argument należy pominąć
Przykład 21. Wstawianie funkcji arkuszowej do arkusza za pomocą VBA
Poniższy przykład spowoduje wstawienie funkcji ZACZ.TEKSTY do komórki C7.
Range("C7").Formula = "=CONCATENATE(A1,Arkusz2!A1,Arkusz3!B3)"
Jak widać, nie możemy wprowadzać tu polskich nazw funkcji. Angielskie odpo-
wiedniki znajdziesz w pliku funcs.xls, który jest instalowany w komputerze razem
z Excelem. W dalszej części książki zamieściłem tabelę metod zawierających
się w obiekcie Application.Worksheetfunction. Tabela ta zawiera polskie nazwy
funkcji i odpowiadające im metody będące w zbiorze tego obiektu. Nazwy metod
odpowiadają angielskim nazwom funkcji. Niestety, funkcja ZACZ.TEKSTY  jak
i kilkanaście innych  nie jest reprezentowana w tym zbiorze i nie można użyć
jej w połączeniu z obiektem Worksheetfunction. Jedynym więc sposobem na
odnalezienie jej angielskiego odpowiednika jest wspomniany wyżej plik.
Możesz także użyć rejestratora makr w celu wygenerowania kodu wpisującego
formułę do komórki. To najpewniejszy sposób, aby nie popełnić błędu, choć reje-
strator używa słowa kluczowego FormulaR1C1, które wymusza nieco inny sposób
adresowania komórek. Poza tym rejestrator wstawia osobny wiersz kodu mówiący
o zaznaczeniu komórki.
Range("C7").Select
ActiveCell.FormulaR1C1 = _
"=CONCATENATE(R[-14]C[-2],Arkusz2!R[-14]C[-2],Arkusz3!R[-12]C[-1])"
Poza tymi sprawami technicznymi kod ma takie samo działanie, więc jeżeli nie
musisz w niego ingerować, skorzystaj z rejestratora i ciesz się szybko osiągnię-
tym wynikiem.
66 Rozdział 5. f& Przykłady
Mając powyższą wiedzę, pomyśl, jak łatwo byłoby stworzyć  samopiszący się
arkusz Excela. Możesz w taki sposób wymusić na użytkowniku zgodę na
uruchomienie makr. Jeżeli nie będzie zgody, nie będzie w nim nawet zwykłych
excelowskich formuł!
Przykład 22. Wymuszenie włączenia dodatku
Jeżeli Twój skoroszyt korzysta z formuł lub funkcjonalności któregoś ze stan-
dardowych dodatków, na przykład AnalysisToolPak zawierającego szereg funkcji
inżynierskich, możesz spowodować jego załadowanie przy każdym otwarciu
Twojego pliku. Poniższa procedura zostanie wykonana po każdym otwarciu sko-
roszytu. Należy ją umieścić w jego module.
Private Sub Workbook_Open()
AddIns("Analysis ToolPak").Installed = True
End Sub
Przykład 23. Zamknięcie dodatku
Poniższa procedura została przypisana do zdarzenia wykonywanego przed za-
mknięciem skoroszytu Workbook_BeforeClose. Użyłem tego zdarzenia, niejako
kontynuując poprzedni przykład. Jednak oczywiście nie jest to konieczne. Być
może Twój skoroszyt nie powinien pracować, gdy jakiś dodatek jest załadowany, [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • alwayshope.keep.pl
  •