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.