Typy danych w VB
W tabeli zostały zestawione typy danych dostępne w Visual Basicu wraz z ich opisem.
Nazwa typu |
Typ danych |
Ilość Pamięci |
Zakres wartości |
Integer |
Liczby całkowite |
2 bajty |
od -32,768 do 32,767 |
Long |
Liczby całkowite |
4 bajty |
~ +/- 2.1E9 |
Single |
Liczby zmienno-przecinkowe |
4 bajty |
Od -3.402823E38 do - 1.401298E-45 dla wartości negatywnych oraz od 1.401298E-45 do 3.402823E38 dla wartości dodatnich |
Double |
Liczby zmienno-przecinkowe (podwójna precyzja) |
8 bajtów |
Od -1,79769313486232D308 do 1,79769313486232D308 |
Currency |
Liczby z najwyżej 15 znakami przed przecinkiem oraz 4 znakami po przecinku |
8 bajtów |
Od 922,337,203,685,477.5808 do 922,336,203,685,477.5807 |
String |
Łańcuch (napis, tekst) |
1 bajt na znak |
Max. 65000 dla łańcuchów o stałej długości oraz max. 2 biliony znaków dla łańcuchów o dynamicznej długości |
Byte |
Liczby całkowite |
1 bajt |
Od 0 do 255 |
Boolean |
Wartości logiczne |
2 bajty |
Prawda (true) lub Fałsz (false) |
Date |
Informacje o dacie i czasie |
8 bajtów |
Od 1.01.100 do 31.12.9999 |
Object |
Obrazki oraz referencje dowolnych obiektów |
4 bajty |
N/A |
Variant (domyślny) |
Dowolny z wymienionych typów |
16 bajtów + 1 bajt na znak |
Wykonuje operacje przyjmując odpowiedni dla nich format |
Deklaracje zmiennych
Do tej pory nie deklarowaliśmy w naszych programach w VB żadnych zmiennych. Pracowaliśmy jedynie na komórkach arkusza. Żeby jednak nasze programy wykonywały prawidłowo bardziej skomplikowane procedury, mogły korzystać z funkcji i podprogramów, powinniśmy umieć deklarować zmienne różnego typu. Zmienne w programie służą do przechowywania informacji.
Do deklarowania zmiennych służą słowa kluczowe Dim i As.
Składnia jest następująca:
Dim nazwa As typ
gdzie Dim -oznacza deklarację zmiennej,
nazwa - nazwa deklarowanej zmiennej,
As -informuje, że zostanie podany typ zmiennej,
typ - typ zmiennej, jeden z typów dostępnych w VB.
Nazwa zmiennej:
Może mieć aż 255 znaków, musi zaczynać się od litery, nie może zawierać kropek, przecinków itp.
Nie może zawierać spacji.
Może składać się z liter i liczb.
Nie może zawierać słów kluczowych, nazw obiektów lub właściwości, występujących w VB.
Dobrze, jeżeli zaczyna się z wielkiej litery .
Najlepiej, jeżeli opisuje funkcję zmiennej, składa się z połączonych wyrazów pisanych
z wielkiej litery.
A teraz kilka przykładów.
Zmienne, które są deklarowane jako Variant, mogą przyjmować dowolne wartości i nie muszą mieć zadeklarowanego typu, jest to typ domyślnie ustawiany.
Dim dowolna, wartosc
Deklarowanie jednej zmiennej typu Integer
Dim Numer As Integer
Deklarowanie wielu zmiennych różnych typów w jednej linii
Dim AnotherVar, Choice As Boolean, BirthDate As Date
Uwaga: Zmienna AnotherVar jest typu Variant. Każda zmienna musi mieć podany typ, inaczej jest typu Variant..
Deklarowanie tablicy o 51 elementach od 0 do 50, typ tablicy Variant
Dim Tablica(50)
Dwuwymiarowa tablica Tab o elementach typu Integer
Dim Tab(3, 4) As Integer
Tablica Urodziny jest typu Data i zawiera 10 elementów od 1 do 10.
Dim Urodziny(1 To 10) As Date
Deklaracja dynamicznej tablicy typu Variant.
Dim Tablica()
Używanie przyrostków określających typ zmiennej
Zmienne można zadeklarować wykorzystując do tego przyrostki określające typ zmiennych, czyli znaki zastępujące nazwy typów.
Typ zmiennej |
Przyrostek |
Integer |
% |
Long |
& |
Single |
! |
Double |
# |
Currency |
@ |
Typ zmiennej |
Przyrostek |
String |
$ |
Byte |
Nic |
Boolean |
Nic |
Date |
Nic |
Variant |
Nic |
Przykłady:
Deklaracja za pomocą As |
Deklaracja za pomocą przyrostków |
Dim Numer As Integer |
Dim Numer%. |
Dim Textr As String |
Dim Test$. |
Operatory matematyczne stosowane w VB
Operatory arytmetyczne
W języku Visual Basic do zapisu operacji arytmetycznych możemy stosować powszechnie znane
z matematyki operatory, czyli znaki oznaczające cztery podstawowe działania (dodawanie, odejmowanie, mnożenie i dzielenie). Dodatkowo dostępny jest operator potęgowania i dwa operatory dzielenia - modulo, czyli reszta z dzielenia i dzielenie całkowite, czyli wynik dzielenia
po odcięciu części ułamkowej.
Poniżej w tabeli zestawione są symbole operatorów z opisem
+ |
dodawanie |
- |
odejmowanie |
* |
mnożenie |
/ |
dzielenie |
\ |
dzielenie całkowite |
Mod |
dzielenie z resztą (modulo) |
^ |
potęgowanie |
Operatory relacji
Jeżeli wystąpi konieczność porównania wartości elementów, możemy stosować operatory porównania zgodnie z regułami matematyki. Sposób oznaczenia poszczególnych operacji i och znaczenie przedstawiony został w tabeli.
= |
równość |
< |
mniejsze |
> |
większe |
<> |
nierówność |
>= |
większe lub równe |
<= |
mniejsze lub równe |
Is |
identyczne |
Operatory logiczne
Do zapisu operacji logicznych stosowane są nazwy angielskie. Działanie ich jest takie samo, jak w logice matematycznej.
Not |
negacja |
And |
koniunkcja (iloczyn logiczny) |
Or |
alternatywa (suma logiczna) |
Xor |
alternatywa wyłączna (albo - albo) |
Eqv |
równość |
Imp |
implikacja |
Konkatenacja |
& |
Zmienne lokalne i globalne
Zależnie od zakresu stosowania zmiennych deklaruje się je w różnych miejscach programu.
I tak zmienne lokalne są zmiennymi, do których możemy się odwołać jedynie w obrębie bloku (procedura, funkcja), w którym zostały zadeklarowane. Jeżeli użyjemy instrukcji Dim nazwa
po nazwie procedury związanej z oprogramowywanym przez nas przyciskiem, to opisane zmienne będą dostępne tylko dla niej, nie będziemy mogli z nich skorzystać w innym miejscu.
Zmienne globalne to takie zmienne, które są dostępne z dowolnego miejsca w programie i mogą być użyte w dowolnym momencie jego wykonywania. Deklaruje się je poza jakimkolwiek blokiem (procedurą, funkcją) programu. Umieścić je należy więc na początku programu przed nazwą pierwszej tworzonej procedury uruchamianej przyciskiem, czy funkcją, czyli przed pierwszymi napisami
Private Sub CommandButton1_Click()
End Sub
Funkcje w VB
Funkcje, to takie elementy programu, które po wykonaniu określonego działania zwracają wynik, który można wykorzystać w innej części programu. Pisane są m. in. w celu zastąpienia wielokrotnego powtarzania niektórych operacji. Dobrym przykładem dla zastosowania funkcji jest program obliczający wartość dwumianu Newtona
. Jak widać, we wzorze wielokrotnie oblicza się wartość silni. Żeby nie pisać w programie wielokrotnie (tu trzykrotnie) instrukcji obliczających wartość silni liczb n, k, i n - k, można napisać jedną funkcję i wywoływać ją z odpowiednią zmienną, gdy jest to konieczne.
Składnia funkcji
Function nazwa (lista_argumentów) As typ_wyniku
intrukcje do wykonania
nazwa = wynik_działania_funkcji
End Function
gdzie
nazwa |
Jest nazwą funkcji. |
lista_argumentów |
Lista zmiennych reprezentujących argumenty, z których funkcja korzysta, gdy jest wywołana. |
typ_wyniku |
Typ wartości zwracanej przez funkcję. |
instrukcje |
Lista instrukcji wykonywanych przez funkcję. |
Function End Function |
Słowa kluczowe informujące o początku i końcu bloku funkcyjnego. |
Istotną rzeczą jest, że wewnątrz funkcji, wśród instrukcji wykonywanych, musi znaleźć się nazwa naszej funkcji, której zostanie przyporządkowany wynik działania funkcji. Wynika to stąd,
że funkcje zwracają wartości poprzez swoją nazwę. Instrukcja taka jest więc konieczna
dla prawidłowego działania funkcji.
Popatrzmy na przykład funkcji obliczającej wartość silni z wykorzystaniem instrukcji Do While.
Function silnia(liczba As Integer) As Integer Dim i, wynik As Integer If liczba = 0 Then silnia = 1 Else i = liczba wynik = 1 Do While i <> 1 wynik = wynik * i i = i - 1 Loop silnia = wynik End If End Function |
Wtrącenie: Silnia jest funkcją określoną dla liczb naturalnych (z zerem) wzorem n! = 1 × 2 ×. .. × n, Ponadto 0! = 1 (z definicji). |
Funkcja napisana przez nas nosi nazwę silnia, ma jeden argument liczba typu Integer i zwraca wartość tego samego typu. Ponieważ wykorzystuje dwie zmienne i i wynik, zostały one zadeklarowane na początku programu. Zgodnie z wymogami formalnymi - nazwie funkcji (silnia) przypisano wynik działania funkcji (1 lub wynik - zależnie od warunku), dwie instrukcje przypisania w programie.
Jak działa program?
Po wywołaniu funkcji silnia pobiera ona wartość swego argumentu liczba i sprawdza, czy jest on równy zero. Jeśli tak jest, nazwie przypisuje wartość 1 i kończy swe działanie, program wraca
do miejsca, w którym funkcja została wywołana. W przeciwnym wypadku (liczba ≠ 0) zmiennej
i przypisuje wartość 1 i inicjuje wartość początkową zmiennej wynik (1 - ze względu na mnożenie). Za nową wartość zmiennej wynik przyjmuje iloczyn jej poprzedniej wartości i aktualnej wartości zmiennej i. Zmniejsza o 1 wartość zmiennej i. Następnie powtarza dalej opisane instrukcje tak długo, dopóki zmienna i przyjmuje wartości różne od 1. Gdy warunek instrukcji Do While jest fałszywy, działanie pętli zostaje przerwane i nazwie funkcji przypisana wartość zmiennej wynik, czyli obliczona przez funkcję wartość silni.
Po zakończeniu działania program wraca do miejsca, w którym funkcja została wywołana.
Jak w programie wywołać funkcję?
Oto fragment programu, w którym pobrana została wartość zmiennej liczba, będącej argumentem funkcji, i wywołanie naszej funkcji. Wynik działania funkcji wpisywany jest do komórki C3.
liczba = Cells(2, 2)
Cells(3, 3) = silnia(liczba)
A to cały program:
Dim liczba As Integer `deklaracja zmiennej globalnej
Function silnia(liczba As Integer) As Variant `prototyp funkcji silnia
Dim i As Integer, wynik As Variant `deklaracja zmiennych lokalnych
If liczba = 0 Then `czy liczba = 0?
silnia = 1 `jeśli tak, to silnia = 1
Else `wykonaj, gdy liczba ≠ 0
i = liczba `ustawienie licznika i
wynik = 1 `wartość początkowa, niezmiennik mnożenia
Do While i <> 1 `sprawdzanie warunku pętli, czy i ≠ 1?
`wykonaj pętlę, gdy warunek spełniony
wynik = wynik * i `nowa wartość zmiennej wynik
i = i - 1 `modyfikacja zmiennej warunku, zmniejszenie i
Loop `zamknięcie pętli
`wykonaj, gdy koniec pętli
silnia = wynik `przypisanie nazwie funkcji wyniku
End If `koniec instrukcji warunkowej
End Function `koniec funkcji
Private Sub CommandButton1_Click() `Obsługa przycisku
liczba = Cells(2, 2) `pobranie z arkusza liczby do zmiennej
Cells(3, 3) = silnia(liczba) `wywołanie funkcji silnia, wpisanie wyniku
End Sub `koniec podprogramu obsługi przycisku
Wykorzystanie Visual Basica do automatyzacji obliczeń w Excelu 2 2/5
Wykorzystanie Visual Basica do automatyzacji obliczeń w Excelu 2
Wykorzystanie Visual Basica do automatyzacji obliczeń w Excelu 2 2/5
Wykorzystanie Visual Basica do automatyzacji obliczeń w Excelu 2
Wykorzystanie Visual Basica do automatyzacji obliczeń w Excelu 2 5/5
Wykorzystanie Visual Basica do automatyzacji obliczeń w Excelu 2
Wykorzystanie Visual Basica do automatyzacji obliczeń w Excelu 2