Visual Basic

Transkrypt

Visual Basic
Visual Basic - Zmienne
1.
2.
3.
W Excelu wartości przechowujemy w komórkach, w VB używamy do tego zmiennych.
Przykład:
x=Range(”C1”).Value – wprowadza do zmiennej x zawartość komórki C1,
Range(”C1”).Value =x – wprowadza do komórki C1 wartość zmiennej x.
Zadanie: Napisz makropolecenie z 3 w nazwie które wykorzystując jedną zmienną
zamienia miejscami zawartość dwóch komórek.
Zmienne deklarujemy komendą:
Dim nazwa_zmiennej As typ zmiennej,
Gdzie:
nazwa zmiennej to np. x lub dane
typ_zmiennej – rodzaj wartości (tekstowe, liczbowe itd.) szczegóły pkt.4
Przykłady:
Dim X As Integer
–
zarezerwuje nazwę X dla liczb całkowitych.
Dim X, Y As Double –
zarezerwuje nazwy X oraz Y dla liczb rzeczywistych.
Wpisz poniższe makropolecenie
Sub Imie4()
x = Range("a1").Value
y = Range("a2").Value
Range("b1").Value = x + y
Range("b2").Value = x & y
End Sub
wartości I po każdym podpunkcie uruchom makro:
 Wprowadź do komórki A1 wartość 1 a do komórki A2 wartość 2. Uruchom makro i
obserwuj różnice w obliczeniach
 Zmień w A1 wartość na literę a i uruchom Makropolecenie. Jeżeli formuła pokazuje
błąd usuń (lub oznacz znakiem ‘) linię Range("B1").Value = x + y
 Wprowadź dodatkową linię, jako pierwszą po Sub Makro()
Dim x,y As String*1
oraz uaktywnij linię Range("B1").Value = x + y. Uruchom makropolecenie.
4.
Typy zmiennych:
a.
Boolean – typ logiczny – możliwe dwie wartości True (prawda) lub False (fałsz),
b.
Integer – typ całkowity tak zwany krótki - liczby od -32 768 do 32 767,
c.
Long – typ całkowity tzw. długi – liczby około od – 2 mld do 2 mld,
d.
Single – typ rzeczywisty pojedynczej precyzji – mniejsza dokładność,
e.
Double – typ rzeczywisty podwójnej precyzji – większa dokładność,
f.
Date – typ Daty,
g.
Currency – typ walutowy,
h.
String*n – typ łańcuchowy – łańcuch znaków czyli tekst, gdzie n po * jest liczbą
określającą długość tekstu,
5.
Komenda InputBox. Poza pobieraniem wartości z komórek, możemy ją również pobrać
bezpośrednio od użytkownika:
InputBox(”tekst w oknie”;”tekst w nagłówku”)
Wprowadź poniższą linie do dowolnego makropolecenia, uruchom i wprowadź do
okna jakąś wartość:
X = InputBox("X=", "pobieranie zmiennej")
6.
7.
Napisz Makropolecenia Imie5 pobierające od użytkownika wartość argumentu X,
obliczające wynik 2*X+5 i wprowadzające go do wybranej komórki. W tym celu:
a.
Otwórz swój plik, w oknie VBA Project po lewej stronie wybierz Arkusz2.
b.
W głównym oknie zadeklaruj nowe Makro (komendą Sub Nazwa Makra)
c.
Zadeklaruj zmienne X i Y typu rzeczywistego pojedynczej precyzji (komenda
Dim), - punkt 2. i punkt 4.
d.
Pobierz wartość argumentu X komendą InputBox – patrz punkt 5.
e.
Oblicz wartość funkcji za pomocą formuły Y=2*x+5.
f.
Wprowadź wynik do wybranej komórki (np. B2) komendą Range(”…”).Value=Y.
g.
Oznacz w arkuszu Excela komórkę zawierającą wynik (ramka, tło, opis)
h.
Sprawdź działanie.
i.
Jeżeli Makro działa oblicz wartość dla x=12,7. Sprawdź czy wynik jest dokładnie
równy 30,4.Pamiętaj, że w komórce może być wyświetlony wynik przybliżony,
dokładny wynik jest widoczny w pasku formuły.
j.
Zmień typ zmiennych na podwójną precyzję. Ponownie wykonaj obliczenie. Czy
teraz wynik się zgadza?
Napisz Makropolecenie Imie6 obliczające średnią z dwóch liczb:
a.
Upewnij się, że piszesz w Arkuszu2.
b.
W głównym oknie zadeklaruj nowe Makro (komendą Sub Nazwa Makra)
c.
Wprowadź linie pobierające zmienne x, y komendą inputbox (patrz 3c)
d.
Wpisz linie wprowadzające wynik wartości średniej do odpowiednich komórek
Range("b5").Value = (x + y) / 2
Range("b6").Value = (0 + x + y) / 2
Range("b7").FormulaR1C1 = (x + y) / 2
e.
Sprawdź działanie makropolecenia na liczbach 1 i 2,
f.
Dopisz deklaracje zmiennej typu double dla x, y na początku makropolecenia i
ponownie sprawdź działanie makra (patrz pkt.2)
UWAGA!
Instrukcja InputBox domyślnie przyjmuje zmienną typu tekstowego (string). Możemy jednak
dokonać konwersji już użytej zmiennej na inny typ: Instrukcje CInt(zmienna), CDbl(zmienna)
pozwalają zamienić typ zmiennej na całkowity i Double (odpowiednio.)
Usuń deklaracje zmiennej w Makropoleceniu 6 a w zamian bezpośrednio po liniach
pobierania wartości (InputBox) dopisz linie
x=CDbl(x)
y=CDbl(y)
Uruchom makropolecenie.
8.
Napisz makropolecenie Imie7 (w Arkuszu2!) obliczające liczbę punktów jaką uzyskuje
kandydat na studia na podstawie wyników maturalnych. Przypomnijmy wzór:
Wp=Am+0,5*Jp+0,5*Jo
Gdzie:
Wp – obliczana liczba punktów,
Am -liczba punktów uzyskana z tzw. przedmiotu kierunkowego,
Jp – liczba punktów z języka polskiego,
Jo – liczba punktów z języka obcego.
Jest to tzw. średnia ważona z wagami 1; 0,5 ; 0,5.
9.
Zapisz zmiany w swoim pliku – pamiętaj aby wybrać typ z obsługą makr.