czwartek, 13 czerwca 2013

Funkcje informacyjne, część 2/5- funkcje VBA

Kontynuując zagadnienia dot. funkcji informacyjnych dziś zaprezentowane zostaną dwie kolejne funkcje- IsArray() oraz IsObject().


1. Funkcja IsArray zwróci prawdę True gdy testowana zmienna będzie zmienną tablicową. Prześledźmy działanie funkcji na poniższym przykładzie analizując zwracane wyniki:

Pamiętając jednak o tym, że zakres komórek po przekazaniu do VBA zwraca tablicę także poniższe wywołanie zwróci wynik True:

2. Funkcja IsObject zwróci wartość True zawsze wtedy gdy jako argument funkcji wskażemy odwołanie do obiektu. Poniższe przykłady obrazuję taką sytuację, wszystkie zapytania zwracają wartość True niezależnie od tego czy definicja obiektu następuje przez określenie typu zmiennej, przez przypisanie obiektu do zmiennej typu Variant, czy też przez bezpośrednie wskazanie obiektu w momencie wywołania:

Myślę, że powyższe funkcje będą dobrym początkiem w zakresie wyjaśniania działania funkcji informacyjnych. Pozostałe dwa posty dot. zagadnienia już wkrótce.

piątek, 7 czerwca 2013

Funkcje informacyjne, część 1/5- funkcje VBA

Funkcje informacyjne to jeden z bardziej przydatnych obszarów VBA, na który zawsze brakuje czasu w czasie prowadzonych szkoleń (dlaczego? bo zazwyczaj inne tematy stają się ciekawsze i ważniejsze).

Krótko więc postaram się przybliżyć rolę wybranych funkcji informacyjnych. Zaczniemy od klasycznych funkcji VBA, a w osobnym poście, który opublikowany zostanie wkrótce przedstawię funkcje arkuszowe pełniące podobne pomocnicze role.

Na początek definicja- rolą funkcji informacyjnych będzie zwrócenie informacji typu PRAWDA/FAŁSZ  w odpowiedzi na pytanie CZY sprawdzające WYBRANE PARAMETRY ZMIENNEJ CZY OBIEKTU. Omówię to na bazie konkretnych przykładowych funkcji i przykładów ich wywołania.

1. Funkcja IsNumerc() odpowiada na pytanie czy wskazana wartość/zmienna zwraca liczbę. Poniższe przykłady zwrócą wartość True:

Funkcję IsNumeric możemy wywołać także w odniesieniu do komórki arkuszowej. Jeżeli w komórce znajdzie się wartość liczbowa to otrzymamy również wynik True.
Jeżeli jednak w komórce (np. A1) znajdzie się data lub godzina to otrzymamy następujący wynik działania funkcji IsNumeric:

2. Funkcja IsDate() zwróci nam wartość True zawsze wtedy, gdy testowana wartość przechowuje Datę lub godzinę. Wszystkie poniższe przykłady zwrócą wartość True: