praca excel(1)


Zespół Szkół Technicznych

im. Ignacego Mościckiego.

w Tarnowie - Mościcach

PRACA

DYPLOMOWA

Temat: „Makropolecenia używane w Microsoft Excel”

Wykonał: Konsultant:

Piotr Bryła mgr Janusz Sadowski

Cel i zakres pracy.

Podstawy teoretyczne

Cel i zakres pracy.

Celem pracy było wykonanie przykładowych makropoleceń w Microsoft Excel służących do ułatwienia i automatyzacji pracy z arkuszem kalkulacyjnym.

Opisane poniżej makropolecenia i sposoby ich programowania pozwalają uczniom doskonale zapoznać się z arkuszem kalkulacyjnym Microsoft Excel oraz językiem programowania Visual Basic .

Język programowania Visual Basic dla Excela umożliwia tworzenie własnych programów zwanych procedurami. Tworzone programy mogą niemal w pełni kontrolować wszystkie operacje dostępne w menu programu Excel i zapewniają automatyzację takich operacji jak np. wykonywanie obliczeń. Umożliwia rów­nież definiowanie własnych funkcji.

Procedura

Procedura jest programem, czyli ciągiem poleceń (instrukcji) odpowiedzialnych za wykonanie żądanych czynności. Stanowi funkcjonalną całość, dla jej prawi­dłowego działania potrzebne są wszystkie składające się na nią polecenia.

Rodzaje procedur:

1. Procedura funkcji. Jest to funkcja zdefiniowana przez użytkownika wyko­nująca obliczenia i zwracająca wynik.

2. Procedura. Jej uruchomienie powoduje wykonanie żądanych czynności, może być uruchamiana bezpośrednio lub z poziomu innej procedury.

Moduł

Do pisania procedur służą specjalne arkusze, zwane modułami, przypominające czysty dokument w edytorze tekstów. Zasady przemieszczania kursora oraz edy­cji poleceń procedur są również takie same, jak w edytorze tekstów. W jednym module może być dowolna ilość procedur.

Wstawienie modułu następuje po wyborze opcji Narzędzia/Makro/Edytor Visual Basic lub wciśnięciu klawiszy Alt+F11 (otwarte zostaje wówczas okno Edytora Visual Basic ) i wyborze polecenia Insert/Module .

Obrazuje to rysunek poniżej :

0x08 graphic

0x08 graphic
Moduł można wstawić także z paska narzędzi co obrazuje rysunek poniżej:

0x08 graphic
Otwarty moduł obrazuje rysunek poniżej:

Powrót do skoroszytu następuje po wyborze opcji File/Close and Return to Microsoft Excel w Edytorze Visual Basic lub wciśnięciu klawiszy Alt+Q.

Można również przełączać się między skoroszytem i modułem klawiszami Alt+Tab.

Budowa procedury

Procedura rozpoczyna się poleceniem Sub, po spacji wpisywana jest nazwa pro­cedury i opcjonalnie w nawiasach okrągłych nazwy argumentów.

Nazwa procedury i nazwy argumentów muszą spełniać następujące warunki:

1. Rozpoczynać się od litery.

2. Muszą być różne od nazw komend, funkcji Visual Basica oraz adresów ko­mórek.

3. Nie mogą zawierać spacji.

Argument - stała ,zmienna lub wyrażenie przekazywane do procedury.

Aby wywołać procedurę Sub z innej procedury, należy wpisać nazwę procedury i dołączyć wartości argumentów obowiązkowych. Procedura Sub może być stosowana w celu takiego zorganizowania innych procedur, aby można je było łatwiej zrozumieć i śledzić ich wykonywanie. W poniższym przykładzie procedura Sub o nazwie Main wywołuje procedurę Sub o nazwie Sygnał, przekazując wartość 56 jako jej argument. Po zakończeniu procedury Sygnał sterowanie powraca do procedury Main, po czym procedura Main wywołuje kolejną procedurę Sub o nazwie Komunikat. Procedura Komunikat wyświetla okno komunikatu; gdy użytkownik kliknie przycisk OK, sterowanie powraca do funkcji Main, a Main kończy się.

Sub Main()

Sygnał 56

Komunikat

End Sub

Sub Sygnał(ile_dźw)

For licznik = 1 To ile_dźw

Beep

Next licznik

End Sub

Sub Komunikat()

MsgBox "Czas na przerwę!"

End Sub

W przypadku, gdy procedura nie zawiera argumentów, należy po jej nazwie umieścić puste nawiasy (można ich nie umieszczać, po wpisaniu nazwy procedu­ry i wciśnięciu klawisza Enter program wstawi je automatycznie).

Następne linie procedury zawierają deklaracje zmiennych i polecenia. Najczę­ściej jedna linia zawiera jedno polecenie, co zapewnia większą czytelność proce­dury. Jeżeli polecenia występują w jednej linii, to należy je oddzielić od siebie dwukropkiem. Można również przenieść część polecenia do następnej linii. Należy wówczas na końcu linii umieścić spację i znak podkreślenia. Z uwagi na większą czytelność procedury na początku linii zawierającej polecenia można umieścić spacje. Ostatnia linia zawiera polecenie End Sub. Polecenie to pojawia się automatycznie po wpisaniu pierwszej linii procedury i wciśnięciu klawisza Enter.

Po wpisaniu każdej linii i przejściu do następnej , program automatycznie sprawdza

poprawność poleceń pod względem składni. W przypadku wykrycia błędu niepoprawne polecenie wyróżnione zostaje kolorem czerwonym i pojawia się okno z komunikatem.

Program automatycznie:

  1. Wyróżnia kolorem niebieskim nazwy poleceń wartości logicznych.

  2. Wyróżnia kolorem zielonym komentarze.

  3. Zmienia w nazwach poleceń, funkcji, obiektów, metod pierwszą literę na wielką.

Należy zapisać na dysku plik VBExcel_1. xls, otworzyć moduł i wpisać:

Przykład 1

Sub Komunikat()

MsgBox "To nasz pierwszy komunikat"

End Sub

Sposoby uruchamiania procedur

Uruchamianie procedur z menu modułu

0x08 graphic
Jeżeli moduł zawiera kilka procedur, to należy ustawić kursor w obrębie tej procedury, która ma zostać uruchomiona i wcisnąć F5, wybrać opcję Run/Run Sub Userform) lub kliknąć przycisk na pasku narzędzi ikonę Run pokazaną na rysunku poniżej.

Uruchamianie procedur z arkusza

Należy wybrać opcję Narzędzia/Makro/Makra lub wcisnąć Alt+F8, zaznaczyć nazwę uruchamianej procedury w polu listy i kliknąć przycisk Uruchom.

Uruchamianie procedur kombinacją klawiszy, utworzoną w trakcie

definiowania procedury

W arkuszu należy wybrać opcję Narzędzia/Makro/Makra, w polu listy zaznaczyć nazwę uruchamianej lub tworzonej procedury i kliknąć przycisk Opcji Następnie należy wpisać nazwę klawisza skrótu oraz opcjonalnie opisać makro w polu Opis. Odtąd kombinacja klawiszy CTRL+ wpisany klawisz skrót będzie uruchamiała procedurę. Należy wypełnić okno dialogowe tak, jak na rysunku poniżej:

0x08 graphic

i klikać przycisk OK. Teraz można (w celu sprawdzenia poprawności) uruchomić procedurę jednym lub, po kolei, wszystkimi, omówionymi dotychczas sposobami.

Uruchamianie procedur przyciskiem polecenia

W arkuszu wybrać opcję Widok/Pasek narzędzi/Formularze, kliknąć formant Przycisk, (drugi w drugiej kolumnie) i zaznaczyć obszar, w którym pojawi się przycisk.

0x08 graphic

W oknie dialogowym Przypisz makro (rysunek powyżej) należy zaznaczyć nazwę makra w polu listy i kliknąć OK.

Klik lewym przyciskiem myszy poza przyciskiem (znikną uchwyty wokół niego). Teraz kliknięcie przycisku uruchomi procedurę. Zmiana położenia przy­cisku w arkuszu polega na jego kliknięciu prawym przyciskiem myszy, a następ­nie lewym, na szarym pasku

z uchwytami i przeciągnięciu w żądane położenie.

Uruchamianie procedur przyciskiem polecenia na wbudowanym pasku narzędzi

Należy utworzyć nowy przycisk na standardowym pasku narzędzi. Kliknąć na pasku prawym przyciskiem myszy i wybrać opcję Dostosuj. Kliknąć zakładkę Polecenia, następnie na liście pozycję Makra; zobacz rysunek poniżej

0x08 graphic

Należy przeciągnąć Przycisk niestandardowy z pola Polecenia okna Dostosuj na pasek narzędzi. Po kliknięciu na przycisk Modyfikuj zaznaczenie i wybraniu opcji Przypisz makro należy wybierać z listy Nazwa makra w oknie przypisz makro pozycję Komunikat. Pozostałe opcje widoczne na rysunku poniżej umożliwiają bardziej szczegółową modyfikację przycisku.

0x08 graphic

Nowa Pozycja Menu

Należy utworzyć pozycję w menu Narzędzia. Klikąć na pasku prawym przyci­skiem myszy i wybrać opcję Dostosuj. Klikąć zakładkę Polecenia, na­stępnie na liście Makra. Rozwijnąć menu Narzędzia, tak jak na rysunku poniżej:

0x08 graphic

Należy przeciągnąć Przycisk niestandardowy z okna Dostosuj do menu. Po klik­nięciu przycisku Modyfikuj zaznaczenie i wybraniu opcji Przypisz makro wybrać z listy makro Komunikat.

Usunięcie przycisku lub pozycji menu polega na otwarciu okna Dostosuj i prze­ciągnięciu poza obszar paska lub menu.

Można również wybrać z listy (po kliknięciu przycisku Modyfikuj zaznacze­nie) opcję Usuń.

Procedury funkcji

Zasady pisania procedur funkcji są podobne do zasad pisania procedur. Zamiast słowa Sub jest Function i zamiast End Sub jest End Function. W procedurze funkcji występuje polecenie przypisujące do nazwy funkcji war­tość, która będzie wynikiem funkcji:

nazwa=funkcji = wyrażenie

Wynik funkcji zwracany jest w komórce arkusza lub przypisany zmiennej w pro­cedurze.

Przykładowa procedura funkcji o nazwie Kwadrat (wynikiem funkcji jest kwa­drat podanego argumentu):

Należy napisać w module podaną niżej funkcję:

Przykład 2

Function Kwadrat(x)

Kwadrat =x*x

End Function

W komórce A1 należy wpisać liczbę 5, w A2 =Kwadrat(A1). Funkcję można wstawić do komórki, wybierając z menu Wstaw polecenie Funkcja Z listy Kategoria funkcji należy wybrać Użytkownika, zaznaczyć funkcję liście Nazwa funkcji i kliknąć przycisk OK. Następnie należy podać wartość argumentu funkcji i ponownie kliknąć przycisk OK.

Typy zmiennych

Typ zmiennej określa rodzaj danych, jakie mogą być przypisane do danej zmiennej.

Boolean = zmienna przybiera dwie wartości logiczne True (prawda) lub False (fałsz). Program rezerwuje na nią 1 bajt.

Byte = zmienna numeryczna przybierająca wartości całkowite od 0 do 255 Program rezerwuje na nią 2 bajty.

Integer = zmienna numeryczna przybierająca wartości całkowite od =32767 do 32 767. Program rezerwuje na nią 2 bajty.

Long (long integer) = zmienna numeryczna przybierająca wartości całkowity =2147483 648 do 2 147 483 647. Program rezerwuje na nią 4 bajty.

Single = zmienna numeryczna przybierająca wartości od =3,4 X 10 ^ 38 do 3,4 X 10 ^ 38. Dokładność do 6 cyfr po przecinku. Program rezerwuje na 4 bajty.

Double (double precision real) = zmienna numeryczna przybierająca wartości od =1,79 X 10 ^ 308 do 1,79 X 10 ^ 308. Dokładność do 14 cyfr po przecinku. Program rezerwuje na nią 8 bajtów.

Currency (scaled integer) = zmienna numeryczna przybierająca wartości od = 9,22 X 10 ^ 11 do 9,22 X 10 ^ 11. Dokładność do 4 cyfr po przecinku Typ przeznaczony do pracy z kwotami pieniężnymi. Program rezerwuje nią 8 bajtów.

String = zmienna typu tekstowego (łańcuch). Występuje w dwóch odmianach stałej długości (a) i zmiennej długości (b). W pierwszym przypadku (a) może zawierać tekst o maksymalnej długości 65 535 znaków. Program rezerwuje wówczas tyle bajtów, ile zawiera łańcuch znaków. W drugim przypadku (b) może zawierać tekst o maksymalnej długości około 2 mld znaków (Win.3.1 = 65400). Program rezerwuje 10 bajtów + długość łańcucha.

Date - zmienna zawiera datę od 01.01.100 do 31.12.9999. Program rezerwuje na nią 8 bitów.

Object = zmienna zawiera odwołanie do dowolnego obiektu. Program rezerwu­je na nią 4 bajty.

Variant = zmienna uniwersalna mogąca zawierać łańcuch znaków, datę, obiekt, macierz lub liczbę od =1,79 X 10 ^ 308 do 1,79 X 10 ^ 308. Pro­gram rezerwuje na nią tyle bajtów, ile wymaga zmienna (z reguły 16 bajtów dla liczb plus 1 bajt na każdy znak) lub 22 bajty plus długość łańcucha dla tekstu.

User defined = definiowana przez użytkownika. Rozmiar zmienny.

Struktura to złożony typ danych (zawiera przynajmniej dwa inne typy). Struktura zostaje zdefiniowana za pomocą instrukcji Type... End Type. Ogólna postać:

Type Nazwa Struktury

Element=l As Typ=zmiennej

Element 2 As Typ zmiennej

.............

Element_n As Typ=zmiennej

End Type

Samo zdefiniowanie struktury nie powoduje utworzenia żadnej zmiennej. Zdefi­niowanie struktury następuje na poziomie modułu (nie wewnątrz procedury).

Deklarowanie zmiennych

Nazwa zmiennej może być dowolnym ciągiem znaków i spełniać następujące warunki:

= nie może być nazwą poleceniami funkcji języka Visual Basic ani przypominać adresów komórek.

Nazwa zmiennej powinna opisywać zawarte w niej dane. Polecenie deklaracji ma postać:

Dim nazwa_zmiennej As typ_zmiennej

Zadeklarowanie zmiennej Liczba o typie Integer jest następujące:

Dim Liczba As Integer

Zadeklarowanie zmiennej Adres o typie String jest następujące:

Dim Adres As String ,

Kilka zmiennych można zadeklarować w jednej linii, np.:

Dim Imię, Nazwisko, Adres As String

Wówczas pozycje listy większej niż 15 liczbie znaków zostaną obcięte. Do utworzenia egzemplarza struktury należy zastosować instrukcję Dim:

Dim Nazwa zmiennej As Nazwa Struktury

Dostęp do elementów struktury uzyskuje się podając nazwę zmiennej i nazwę elementów struktury:

Nazwa_zmiennej. Element_1 = wartość

Nazwa_zmiennej. Element 2 = wartość

.....................................

Nazwa_zmiennej. Element n = wartość

Bezpośrednie definiowanie zmiennych

Ta metoda polega na bezpośrednim przypisaniu wartości lub wyrażenia do zmiennej :

Nazwa_zmiennej = wartość (wyrażenie)

Np.

A = 10, b = suma1 + suma2

Automatyczne rozpoznawanie zmiennych

W Visual Basie nie jest bezwzględnie wymagane deklarowanie zmiennych. Jeżeli program napotka w procedurze nieznaną mu nazwę, automatycznie traktuje ją jako zmienną i przypisuje jej typ Variant. Zmienić nazwę procedury na sub Komunikat1 () i wpisać :

Przykład 3

Sub Komunikatl()

b = 10

c = 5

a=b+c

MsgBox a

End Sub

Uruchomić procedurę. W przypadku definiowania zmiennych należy umieścić na początku modułu komendę Option Explicit, co wymusi kontrolę definicji zmiennych. W pierwszej linii modułu należy wpisać: Option Explicit. Uruchomić procedurę. Ze względu na wymóg zdefiniowania zmiennych pojawił się komunikat przedstawiony na rysunku poniżej

0x08 graphic

Automatyczne rozpoznawanie zmiennych posiada kilka wad:

= uniemożliwia kontrolę i wychwytywania błędów wynikających z pomyłek podczas wpisywania nazw zmiennych (ta sama zmienna traktowana jest jak dwie lub więcej zmiennych = tyle, ile pomyłek);

= zmienna typu Variant zajmuje więcej pamięci niż inne typy zmiennych;

= nie można kontrolować działania procedury w przypadku przypisania do zmien­nej wartości innej niż ta, na jaką wskazywałby typ zmiennej (czyli w przy­padku zadeklarowania zmiennej).

Należy poprawić procedurę Komunikat1 deklarując zmienne a, b, c.

Przykład 4

Sub Komunikat2()

Dim a, b, c As Integer

b = 10

c = 5

a = b + c

MsgBox a

End Sub

Stałe

VBA posiada dwa typy stałych: literalne oraz symboliczne. Jedne i drugie są często nazywane po prostu stałymi. Stała literalna to określona wartość, np. taka jak tekst, czy liczba, która nie zmienia się. Korzystanie z nich jest wygodne w przypadku częstego stosowania ich w procedurze. Drugi typ stałej (symbo­liczna) definiowany jest za pomocą słowa kluczowego Const.

Const stała = wartość

Należy zdefiniować dwie stałe, modyfikując procedurę Komunikat2:

przykład 5

Sub Komunikat3()

Dim a, b, c As Integer

Const Liczba = 15

Const Tekst = "Suma = "

a = b + c + Liczba

MsgBox Tekst & a

End Sub

Należy zwrócić uwagę , że do połączenia obu części komunikatu użyty został operator łączenia &.

Operatory arytmetyczne

Tabela 1 Operatory arytmetyczne

Operator

Działanie

=

Odejmowanie

+

Dodawanie

^

Potęgowanie

/

Dzielenie

\

Dzielenie (podana część całkowita wyniku)

Mod

Dzielenie (podana reszta wyniku)

Sqr

Pierwiastek kwadratowy

*

Mnożenie

Okna dialogowe

Okna dialogowe służą do komunikowania się użytkownika z programem podczas wykonywania procedury.

Okna informacyjne

Przekazują użytkownikowi żądane informacje. Dotychczas okno informacje wyświetlane było po wpisaniu polecenia MsgBox informacja, jednak większe możliwości zapewnia funkcja MsgBox przypisana do zmiennej.

Składnia polecenia tworzącego okno informacyjne:

Nazwa=zmiennej = MsgBox(_

promet: _ "Tekst komunikatu", _

title: _ "Tytuł okna",_

buttons: = zestaw przycisków + ikona + domyślny przycisk,_

helpfile: = nazwa pliku zawierającego pomoc,_

context: = numer tematu w podanym pliku)

Tabela 2 Parametry funkcji MsgBox

Zestaw przycisków

Stała Visual basic

Wartość liczbowa

OK (zatwierdzenie)

vbOKOnly

0

OK, Cancel (rezygnacja)

vbOKCancel

1

Abort (przerwij),

vbAbortRetrylgnore Retry(ponów), Ignore (ignoruj)

2

Yes, No, Cancel

vbYesNoCancel

3

Yes, No

vbYesNo

4

Retry, Cancel

vbRetryCancel

Tabela 3 Ikony funkcji MsgBox

Ikona

stałą visual Basic

Wartość liczbowa

ostrzegawcza "STOP"

vbCritical

16

zapytania

vbOuestion

32

ostrzegawcza

vbExclamation

48

informacyjna

vblnformation

64

Tabela 4 Przyciski funkcji MsgBox

Domyślny przycisk

Stała Visual Basie

Wartość liczbowa

pierwszy

vbDefauItButtoni

0

drugi

VbDefauItButton2

256

trzeci

VbDefauItButton3

512

Składnia może być również następująca:

Nazwa=zmiennej = Msgbox (prompt, buttons, title, helpfile, context)

Obowiązkowo należy podać pierwszy argument; argument buttons można wy­razić stałą VBA lub dodać wartości liczbowe bądź sumę wartości liczbowych.

Okna wprowadzania danych

Umożliwiają wprowadzanie danych z klawiatury za pośrednictwem funkcji InputBox przypisanej do zmiennej.

Poniższa procedura oblicza sumę dwóch podanych liczb:

Przykład 6

Sub Wprowadzanie danych()

Dim a, b, c As Integer

a = InputBox("Podaj liczbę a: ")

b = InputBox("Podaj liczbę b: ")

c = a + b

MsgBox "Suma podanych liczb: " & c

End Sub

Pełna składnia polecenia tworzącego okno wprowadzania danych:

Nazwa zmiennej = InputBox

promet ="Wyświetlenie podpowiedzi o wprowadzanej danej"

title ="Tytuł okna"

default =domyślna wartość wprowadzanych danych

xpos =położenie w poziomie okna na ekranie

ypos = położenie w pionie okna na ekranie

helpfile =nazwa pliku zawierającego pomoc

context =numer tematu w podanym pliku

Plik helpfile możemy utworzyć tylko za pomocą osobnego programu do tego przeznaczonego(można pominąć ten wiersz)

Składnia może być również następująca:

Nazwa_zmiennej = InputBox („promet”, „title”, „default”, xpos, ypos, helpfile, context)

Obowiązkowo należy podać pierwszy argument.

­

Komentarze

Komentarz rozpoczyna się od znaku apostrofu. Jest to najczęściej tekst objaśniający polecenie , pomijany przez program w trakcie działania procedury. Zapewnia większą czytelność procedury; przydatny zwłaszcza podczas poprawiania ­błędów.

Należy napisać procedurę wykorzystującą okna dialogowe do wprowadzenia dwóch zmiennych, okna informacyjne wyświetlające wyniki działań na tych liczbach: sumę, różnicę, iloczyn, potęgę, dzielenie i pierwiastek kwadratowy.

Przykład 7

Sub Okna_operatory()

`Definiowanie zmiennych

Dim a, b, c, d, e, f, g, h, i, j, k, 1, m, n, o, p, r, s As Single

'Wprowadzenie pierwszej liczby

'Przypisanie funkcji InputBox do zmiennej a. Okno jest położone

'w centrum ekranu, ponieważ nie podane zostały argumenty xpos

i ypos

'Wartością domyślną jest 0.

a = InputBox("Podaj pierwszą liczbę: ","Działania arytmetyczne", ”0”)

'Wprowadzenie drugiej liczby

'Przypisanie funkcji InputBox do zmiennej b.

'Wartością domyślną jest 10.

'Argumenty xpos i ypos określają położenie okna na ekranie.

b = InputBox("Podaj drugą liczbę: ", "Działania arytmetyczne", 10, 800, 1200)

'Obliczenie sumy podanych liczb. Wyrażenie powinno wyglądać c = a + b

'ponieważ znak "+" jest również używany do łączenia danych, to

'w przypadku błędnej sumy należy wprowadzić równorzędne wyrażenie.

c = a + b

'Przypisanie funkcji MsgBox do zmiennej d.

d = MsgBox("Suma podanych liczb wynosi: " & c, "Sumowanie wprowadzonych liczb", vbYesNo + vbInformation + vbDefaultButtonl)

'Obliczenie różnicy pierwszej i drugiej liczby

e=a-b

'Przypisanie funkcji MsgBox do zmiennej f.

f = MsgBox("Różnica pierwszej i drugiej liczby wynosi: " & e

, "Odejmowanie wprowadzonych liczb", 0+16+0)

'Obliczenie iloczynu pierwszej i drugiej liczby

g=a*b

'Przypisanie funkcji MsgBox do zmiennej h.

h = MsgBox("Iloczyn pierwszej i drugiej liczby wynosi: " & g, "Odejmowanie wprowadzonych liczb", 2 + 32 + 256)

'Obliczenie potęgi pierwszej liczby o wykładniku będącym drugą liczbą.

i=a^b

'Przypisanie funkcji MsgBox do zmiennej j.

j = MsgBox(="Pierwsza liczba podniesiona do potęgi o wykładniku drugiej liczby: " & i

, "Potęgowanie liczby", 512)

'Obliczenie ilorazu pierwszej i drugiej liczby. k=a/b

'Przypisanie funkcji MsgBox do zmiennej i.

i = MsgBox("Iloraz pierwszej i drugiej liczby wynosi: " & k, 16, "Pełne dzielenie liczb")

'Obliczenie części całkowitej ilorazu pierwszej i drugiej liczby.

m=a\b

'Przypisanie funkcji MsgBox do zmiennej n.

n = MsgBox("Część całkowita ilorazu pierwszej i drugiej liczby wynosi: " & m, 16, "Część całkowita ilorazu liczb")

'Obliczenie reszty z dzielenia pierwszej i drugiej liczby.

o = a Mod b

'Przypisanie funkcji MsgBox do zmiennej p.

p = MsgBox("Reszta z dzielenia pierwszej i drugiej liczby wynosi: " _ & o, 16, "Reszta ilorazu liczb")

'Przypisanie funkcji MsgBox do zmiennej r. 'Obliczenie pierwiastka kwadratowego liczby a.

s = Sqr(a)

r = MsgBox("Pierwiastek kwadratowy pierwszej liczby wynosi: " & s, _ 16, "Pierwiastek kwadratowy")

End Sub

W dotychczas utworzonych oknach dialogowych występowały przyciski, jednak ich klikanie nie powodowało odpowiednich akcji (wszystkie zachowywały się jak przycisk OK i zamykały okno). Istnieje jeszcze jeden rodzaj okien dialogo­wych. Kliknięcie przycisku w takim oknie powoduje wykonanie przypisanej do niego akcji (mogą to być zarówno okna do wprowadzania danych jak i okna informacyjne).

Warunkowe wykonywanie poleceń

Umieszczenie w procedurze instrukcji warunkowych umożliwia warunkowe wykonywanie poleceń. W zależności od tego czy warunek jest spełniony, czy też nie, wykonywane są określone instrukcje (grupy instrukcji).

Każdy warunek może mieć jedną z dwóch wartości logicznych:

= True (prawda), gdy jest spełniony,

= False (fałsz), gdy nie jest spełniony.

W formułowaniu warunków zasadniczą rolę odgrywają operatory porównani i operatory logiczne.

Operatory porównania

Tabela 5 Operatory porównania

Operator

Znaczenie

=

Równe

>

Większe od

<

Mniejsze od

>=

Większe lub równe

<=

Mniejsze lub równe

<>

Różne

Like

Do porównywania tekstów

Za pomocą operatorów porównania konstruuje się warunki proste składające się z dwóch części połączonych ze sobą operatorem porównania, np. x > 0, miesiąc = "maj", y < > 50.

Warunek utworzony przy użyciu operatora Like ma postać: tekstl like tekst2

tekst2 jest tekstem wzorcowym, tekstl i tekst2 są ujęte w cudzysłów, np. "lato" like "lato" = warunek prawdziwy, "lato" like "zima" warunek fałszywy. W tekście wzorcowym można korzystać ze specjalnych symboli (wildcard cha­racters = symboli maski):

1. Znak ? zastępuje pojedynczy znak, np. jeżeli tekst2 jest a?c, to równoważne są teksty: axc, ayc, abc.

2. Znak # zastępuje dowolną cyfrę, np. jeżeli tekst2 jest a#b#, to równoważ­ne są teksty: albl, a9b5, a3b7.

3. Znak * zastępuje dowolną ilość znaków, np. jeżeli tekst2 jest x*y, to równo­ważne są teksty: xabcy, x0000000y, x321y, xlf2i3ky.

Instrukcja warunkowa IF ... THEN

Instrukcje warunkowe umożliwiają wykonywanie określonych poleceń w zależ­ności od tego, czy podany warunek jest prawdziwy. Postać tej instrukcji dla jednego polecenia jest następująca: If warunek Then polecenie. W poniższej procedurze obliczenie iloczynu dwóch liczb nastąpi w przypadku, gdy pierwsza liczba jest większa od 10.

Przykład 8

Sub Warunekl If then()

Dim a, b, c As Integer

a = InputBox("Podaj liczbę a: ")

b = InputBox("Podaj liczbę b: ")

If a > 10 Then

c = a*b

End If

MsgBox "Iloczyn podanych liczb: " & c

End Sub

Ogólna postać tej instrukcji jest następująca:

If warunek Then

polecenie 1

polecenie 2

...........

polecenie n

End if

polecenie A

0x08 graphic
Schemat działania komendy If... Then został przedstawiony na rysunku:

W przypadku, gdy warunek jest prawdziwy wykonywane są polecenia od 1 do n , jeżeli warunek jest fałszywy wykonywane są polecenia znajdujące się po komendzie End if. Poniższa procedura (rozwiązanie równania kwadratowego) przedstawia działanie komendy:

Przykład 9

Sub delta()

Dim a, b, c, delta, xl, x2, ol, 02, 03 As Single

a = InputBox(

Title: ="Równanie kwadratowe ax2+bx+c",

­prompt: ="Podaj a: ", ­

Default: =0)

b = InputBox(

Title: ="Równanie kwadratowe ax2+bx+c", _

promet: ="Podaj b: ", ­

Default: =0)

c = InputBox(

Title: ="Równanie kwadratowe ax2+bx+c", _

promet: ="Podaj c: ", ­

Default: =0)

delta = b ^ 2 = 4 * a * c

ol = MsgBox(

promet: ="Delta = " & delta,

Title: ="Dla równania: y= " & a & "x2+" & b & "x+" & c, ­

Buttons: =0 + 16)

If delta > 0 Then

xl = (=b = Sqr(delta)) / 2 * a

x2 = (=b + Sqr(delta)) / 2 * a

o2 = MsgBox(_

promet: ="Pierwszy pierwiastek wynosi: " & xl & ­

"Drugi pierwiastek wynosi: " & x2, ­

Title: ="Rozwiązanie równania",

­ Buttons: =0 + 64)

End If

03 = MsgBox(_

promet: ="y= " & a & "x2+" & b & "x+" & c,

Title: ="Zakończono rozwiązanie równania: ", ­

Buttons: =0 + 16)

End Sub

Innym wariantem instrukcji warunkowej jest:

If... Then... Else

If warunek Then polecenie=1 Else polecenie=2

End If

Instrukcja ta w zależności od prawdziwości warunku , wykonuje polecenie 1 ( warunek prawdziwy ) lub polecenie 2 ( warunek fałszywy ). Poniższa procedura dodaje dwie liczby (jeżeli a> 10) lub od pierwszej liczby odejmuje drugą (jeżeli a<=10).

Przykład 10

Sub Warunek If_then_else()

Dim a, b, c As Integer

a = InputBox("Podaj liczbę a: ")

b = InputBox("Podaj liczbę b: ")

If a > 10 Then

c=a*b

Else

c=a-b

MsgBox "Wynik działania: " & c

End Sub

Dla wielu poleceń instrukcja, w zależności od prawdziwości warunku, pozwala wykonać jedną z dwóch sekwencji poleceń:

If warunek Then

polecenie 1

polecenie 2

...........

polecenie n

Else

polecenie A

polecenie B

...........

polecenie N

End if

Jeżeli warunek jest prawdziwy wykonywane są polecenia od 1 do n, jeżeli waru­nek jest fałszywy to wykonywane są polecenia od A do N.

Schemat działania komendy IF... THEN ...ELSE przedstawia rysunek poniżej

0x08 graphic

Uaktywnienie przycisków w oknach informacyjnych

Poznaną instrukcję warunkową If... Then można wykorzystać do wykonania ciągu instrukcji po wciśnięciu przycisku w oknie informacyjnym. Po przypisa­niu do zmiennej funkcji MsgBox i wciśnięciu danego przycisku zostaje zwróco­na wartość stałej Visual Basic odpowiadająca temu przyciskowi. Poniższa proce­dura przedstawia omówiony wyżej temat, należy napisać ją bez instrukcji pogrubionym tekstem.

Przykład 11

Sub Przyciski okna()

Dim a As Single

Start:

a = MsgBox("Tak = Komunikat: Wciśnięto przycisk Tak Nie = Komunikat: Wciśnięto przycisk Nie Anuluj = Koniec działania procedury. ", vbYesNoCancel + vbInformation + vbDefaultButtonl," Sprawdzenie działania przycisków! ")

If a = vbYes Then

MsgBox "Wciśnięto przycisk Tak"

GoTo Start

End If

If a = vbNo Then

MsgBox "Wciśnięto przycisk Nie"

GoTo Start

End If

If a = vbCancel Then

Exit Sub

End If

End Sub

Instrukcja skoku bezwarunkowego GoTo

Instrukcja powoduje wykonanie skoku do linii procedury określonej przez ety­kietę.

Składnia instrukcji: GoTo

Po nazwie etykiety umieszcza się dwukropek. Skok nąstępuje zawsze w obrębie ; jednej procedury, może nastąpić do przodu (do linii znajdującej się po instrukcji GoTo) lub do tyłu (do linii znajdującej się przed instrukcją GoTo).

W procedurze Przyciski okna należy dopisać wiersze pisane pogrubioną czcionką.

0x08 graphic
Schemat działania komendy GoTo przedstawia rysunek poniżej

Instrukcja warunkowa SELECT CASE

Ta instrukcja jest najodpowiedniejsza do sprawdzenia większej ilości warunków.

Select Case wyrażenie

...........

Case porównanie 1

...........

pierwszy blok instrukcji

...........

Case porównanie 2

...........

drugi blok instrukcji

...........

Case Else

...........

blok instrukcji E1se

...........

End Select

Instrukcja Select Case analizuje listę instrukcji Case porównójąc wartość wyrażenie

z wartościami porównanie 1 i porównanie 2 , ... porównanie n .

W przypadku znalezienia takiej samej wartości zostaje wykonany powiązany blok instrukcji, w przeciwnym przypadku zostanie wykonany blok instrukcji Else lub w przypadku braku warunku Case Else nie zostanie wykonana żadna instrukcja. Porównanie z innymi wartościami tworzy się przy wykorzystaniu operatorów porównania, przed operatorem należy wówczas umieścić słowo klu­czowe Is. Do określenia zakresu wartości używa się słowa kluczowego To. Więk­szą liczbę wyrażeń oddziela się przecinkami.

Wiersz zawierający instrukcję Case może mieć postać:

Case 1

Case Is >7

Case 10 To 15

Case =3, =1, 6 To 17, Is >= 27

Poniższa procedura przedstawia działanie omawianej instrukcji:

Przykład 12

Sub wybór()

Dim a, b As Integer

a = InputBox(

Title: _" Instrukcja warunkowa Select Case. ", _

promet: ="Podaj wartość wyrażenia a: ", _

Default: =0)

Select Case a

Case 1

b = MsgBox(

promet: ="Wartość a = 1", _

Title: _" Instrukcja warunkowa Select Case. ", _

Buttons: =vbYes + vbInformation)

Case Is = 2

b = MsgBox(

promet: ="Wartość a = 2",

Title: _" Instrukcja warunkowa Select Case. ", _

Buttons: =vbYes + vbInformation)

Case 4 To 10

b = MsgBox(

promet: ="Wartość a >= 4 i <=10. ",

Title: _" Instrukcja warunkowa Select Case. ", _

Buttons: =vbYes + vbInformation)

Case Else

b = MsgBox(_

promet: ="Wartość a > 10", _

Title: _" Instrukcja warunkowa Select Case. ", _

Buttons: =vbYes + vbInformation)

End Select

End Sub

Kolejna procedura , w zależności od podanej wartości a, wykonuje odpowiednie działania matematyczne na zawartości komórek B1:B5 aktywnego arkusza .Range(„adres komórki”).Value przypisuje do zmiennej wartość tej komórki.

Przykład 13

Sub wybór l()

Dim a As Byte

Dim b, c, d, e, f, g As Double

b = Range("B1").Value

c = Range("82").Value

d = Range("B3").Value

e = Range("B4").Value

f = Range("B5").Value

a = InputBox(_

Title: ="Instrukcja warunkowa Select Case.", _

promet: ="1=dodawanie, 2=odejmowanie, 3=mnożenie, 4=dzielenie,

& Chr(13) & Chr(10) & Chr(13) & Chr(10) & ­

"Podaj wartość wyrażenia a: ", ­Default: =0)

Select Case a

Case 1

g = b + c + d + e + f

Range("A7").Value = "Suma ="

Range("B7").Value = g

Case 2

g=b=c=d=e=f

Range("A7").Value = "Różnica ="

Range("B7").Value = g

Case 3

g = Range("B1").Value * Range("B2").Value ­

* Range("B3").Value * Range("B4").Value * Range("B5").Value

Range("A7").Value = "Iloczyn ="

Range("B7").Value = g

Case 4

g = b / c / d / e / f

Range("A7").Value = "Iloraz

Range("B7").Value = g

End Select

End Sub

Pętle

Struktury pętli umożliwiają wielokrotne wykonywanie tych samych instrukcji. Pętle wykonywane są albo określoną ilość razy, albo do spełnienia określonego warunku.

Instrukcja FOR... NEXT

Powoduje ona wykonanie bloku instrukcji określoną ilość razy.

For zmienna = liczba_1 To liczba_2

Blok instrukcji

Next zmienna (lub Next)

Wykonanie pętli rozpoczyna się od przypisania zmiennej liczby 1. Następnie wykonywany jest blok instrukcji i zwiększenie wartości licznika o 1 oraz poró­nanie jej z liczbą 2. Jeżeli zmienna jest mniejsza lub równa

liczbię 2, nastę­puje ponowne wykonanie pętli. Jeżeli zmienna jest większa od liczby 2, nastę­puje zakończenie wykonywania pętli.

Poniższa procedura wypełnia komórki arkusza wierszami:

Przykład 14

Sub For wypełnianie()

Dim okno As Single

Dim a, b, c As Byte

a=1

b=1

c=0

Range("A1: K25").Clear

Start:

okno = MsgBox(_

promet: ="Tak = Wypełnianie, Anuluj = Koniec wypełniania.", _

Title: _" Wypełnianie komorek arkusza! ",

Buttons: =vbYesNo + vbExclamation + vbDefaultButtonl)

If okno = vbYes Then

For a = 1 To 10

Cells(a, b).Value = c + a

Next

b=b+1

c = c + 10

GoTo Start

End If

If okno = vbNo Then

Exit Sub

End If

End Sub

Nie zawsze konieczne jest rozpoczynanie pętli od 1, a zastosowanie słowa kluczowego Step (krok) umożliwia zwiększenie licznika pętli w każdym cyklu wartość inną niż 1, np. pętla

For x = 7 To 55 Step 10

zostanie wykonana 5 razy dla wartości: 7, 17, 27, 37, 47.

Można podać ujemną lub ułamkową wartość kroku. W przypadku wartości ułamkowej zmienna musi być typu zmiennoprzeankowego. Opuszczenie pętli umoz­liwia instrukcja Exit For.

Instrukcja warunkowa Do... Loop

Instrukcja umożliwia wykonanie bloku instrukcji do chwili, gdy ustalony waru­nek przyjmie wartość True lub False. Jego sprawdzenie może nastąpić na po­czątku lub końcu pętli w zależności od wariantu obliczeń.

Mamy do wyboru następujące odmiany omawianej instrukcji:

= Do While... Loop

= Do Until... Loop

= Do Loop... While

= Do Loop... Until

Schemat komendy Do While... Loop widać na rysunku poniżej:

0x08 graphic

Jeżeli warunek jest fałszywy, polecenia znajdujące się wewnątrz pętli nie zostaną w ogóle wykonane; jeżeli jest prawdziwy, polecenia wewnątrz pętli są wykony­wane aż do momentu, gdy warunek będzie fałszywy.

Następna procedura jest przykładem działania tej pętli. Dopóki wartość b jest większa od zera (warunek prawdziwy) po każdej pętli dopisywana jest litera A. Po każdej pętli wartość b zmniejsza się o jeden, aż po a pętlach b jest równe zero (warunek fałszywy) i nastąpi wpuszczenie pętli.

Przykład 15

Sub Do_1()

Dim a, b, d As Single

Dim c As String

a = InputBox(_

Title: _" Komenda warunkowa Do While... Loop.",

­prompt: ="Podaj wartość a: ", ­

Default: =0)

b=a

Do While b > 0

c = c + „A”

b=b-1

Loop

d = MsgBox(

promet: =c & " Litera 'A' została wypisana " & a & " razy.",

­Title: _" Komenda warunkowa Do While... Loop.", ­

Buttons: =vbYes + vbInformation)

End Sub

Schemat instrukcji Do Until.....Loop obrazuje rysunek poniżej

0x08 graphic

Jeżeli warunek jest prawdziwy, polecenia znajdujące się wewnątrz pętli nie zo­staną w ogóle wykonane; jeżeli jest fałszywy, polecenia wewnątrz pętli są wyko­nywane aż do momentu, gdy warunek stanie się prawdziwy.

Następna procedura jest przykładem działania tej pętli. Dopóki wartość b jest większa od zera (warunek fałszywy), po każdej pętli dopisywana jest litera B. Po każdej pętli wartość b zmniejsza się o jeden, aż po a pętlach b jest równe zero (warunek prawdziwy) i nastąpi opuszczenie pętli.

Przykład 16

Sub Do_2()

Dim a, b, d, e As Single

Dim c As String

a = InputBox(

Title: _" Komenda warunkowa Do Until... Loop.", _

promet: ="Podaj wartość a: ", _

Default: =0)

b=a

Do Until b = 0

c = c + „B”

b = b = I

d = MsgBox(_

promet: =c, _

Title: _" Komenda warunkowa Do Until... Loop.", _

Buttons: =vbYes + vbInformation)

Loop

e = MsgBox(_

prompt:=c & „ Litera `B` została wypisana „& a & „ razy.”,_

Title:=”Komenda warunkowa Do Until....Loop.”,_

Buttons:=vbYes + vbInformation)

End Sub

0x08 graphic

Schemat instrukcji Do Loop... While obrazuje rysunek poniżej

Pętla zostaje wykonana przynajmniej jeden raz. Jeżeli warunek jest prawdziwy, polecenia znajdujące się wewnątrz pętli są wykonywane ponownie; jeżeli waru­nek jest fałszywy, następuje opuszczenie pętli.

Następna procedura jest przykładem działania tej pętli. Dopóki wartość b jest większa od zera (warunek prawdziwy), po każdej pętli dopisywana jest litera C. Po każdej pętli wartość b zmniejsza się o jeden, aż po a pętlach b jest równe zero (warunek fałszywy)

i nastąpi opuszczenie pętli.

Przykład 17

Sub Do_3()

Dim a, b, d, e As Single

Dim c As String

a = InputBox(

Title: _" Komenda warunkowa Do... Loop While.", ­

prompt: ="Podaj wartość a: ", ­

Default: =0)

b=a

Do

c = c + „C”

b = b = 1

d = MsgBox(_

­prompt: =c,

Title: _" Komenda warunkowa Do... Loop While.", _

Buttons: =vbYes + vbInformation)

Loop While b > 0

e = MsgBox(­

prompt: =c & " Litera 'C' została wypisana " & a & " razy.", _

Title: _" Komenda warunkowa Do... Loop While.", _

Buttons: =vbYes + vbInformation)

End Sub

0x08 graphic
Schemat instrukcji Do Loop... Until widać na rysunku poniżej

Pętla zostaje wykonana przynajmniej jeden raz. Jeżeli warunek jest fałszywy, polecenia znajdujące się wewnątrz pętli są wykonywane ponownie; jeżeli waru­nek jest prawdziwy, następuje opuszczenie pętli.

Następna procedura jest przykładem działania tej pętli. Dopóki wartość b jest większa od zera (warunek fałszywy), po każdej pętli dopisywana jest litera D. Po każdej pętli wartość b zmniejsza się o jeden, aż po a pętlach b jest równe zero (warunek prawdziwy) i nastąpi opuszczenie pętli.

Przykład 18

Sub Do_4()

Dim a, b, d, e As Single

Dim c As String

a = InputBox(_

Title: _" Komenda warunkowa Do... Loop Until.", _

promet: ="Podaj wartość a: ",

Default: =0)

b=a

Do

c = c + „D”

b=b=1

d = MsgBox(_

promet: =c, ­

Title: _" Komenda warunkowa Do... Loop Until.", _

Buttons: =vbYes + vbInformation)

Loop Until b = 0

e = MsgBox(_

promet: =c & " Litera 'D' została wypisana " & a & " razy.",

­Title: _" Komenda warunkowa Do... Loop Until.", _

Buttons: =vbYes + vbInformation)

End Sub

Odwotanie do innych procedur

Z poziomu procedury można uruchomić inną procedurę. Jeżeli program pod­czas wykonywania danej procedury napotka polecenie nakazujące wykonanie innej procedury to przerywa wykonywanie pierwszejprocedury i uruchamia drugą pro­cedurę.

Po wykonaniu drugiej procedury program wraca do pierwszej, do miejsca, w którym wykonywanie procedury zostało wstrzymane i wykonuje następne pole­cenia.

W charakterze instrukcji nakazującej wykonanie innej procedury stoso­wana jest jej nazwa. Jeżeli procedura posiada argumenty, należy podać ich war rości oddzielone przecinkami.

Poniższa procedura obrazuje opisywaną sytuację. Procedura Do odwołania jest wywoływana z poziomu procedury Odwołanie.

Przykład 19

Sub Do_odwołania()

MsgBox "Wykonana została procedura Do_odwołania."

End Sub

Sub Odwołanie()

MsgBox "Chcę wywołać procedurę Do_odwołania."

Do_odwołania

MsgBox "Możesz w ten sposób wywoływać procedury."

End Sub

Zmienne tablicowe

Zmienna zawiera zestaw wartości uporządkowanych w postaci tablicy o dowol­nej liczbie wymiarów.

Tablice jednowymiarowe

Tablica składa się z jednego wiersza lub jednej kolumny, w której każdy element jest indeksowany. Indeksy to kolejne liczby naturalne. Visual Basie domyślnie numeruje elementy tablicy, poczynając od zera.

Deklarując zmienną zawierającą tablicę, należy podać nazwę zmiennej i w na­wiasach okrągłych ilość elementów.

Dim a(99)

a = nazwa zmiennej,

99 = ilość elementów tablicy, w tym przypadku 100.

Numeracje elementów tablicy można zmienić , posługując się deklaracją Option Base. Instrukcja ta powinna się znajdować na początku modułu (numeracja dotyczy wszystkich procedur).

Option Base 1

Dim a(10) 'Tablica zawiera 10 elementów, pierwszy ma numer 1;

Option Base 17

Dim a(4) 'Tablica zawiera 4 elementy, pierwszy ma numer 17, drugi 18,

'trzeci 19, czwarty 20.

Dla pojedynczej zmiennej tablicowej można ustalić numerację elementów po­dając indeksy pierwszego i ostatniego elementu połączone instrukcją To, np.

Dim x(5 To 14) 'Tablica zawiera 10 elementów, pierwszy o numerze 5.

Tablice dwuwymiarowe

Tablica dwuwymiarowa składa się z wierszy i kolumn, na przecięciu ktorych znajdują się jej elementy. Położenie danego elementu tablicy określają dwa in­deksy: numer wiersza

i numer kolumny. Wartości indeksów rozdzielone są prze­cinkiem.

W celu zadeklarowania zmiennej zawierającej tablicę dwuwymiarową, po na=' zwie zmiennej podaje się numery ostatniego wiersza i kolumny, np.:

Dim a(5,3) As Typ=zmiennej 'Zmienna a zawiera tablicę składającą się z 5

'wierszy i 3 kolumn.

Zasięg zmiennej

Zasięg zmiennej określa z jakiego poziomu program ma dostęp do zmiennej. Z tego względu zmienne można podzielić na trzy grupy: zmienne lokalne, zmienne poziomu modułu i zmienne globalne.

Zmienne lokalne

Są rozpoznawane przez program tylko w obrębie procedury, w której zostały utworzone (tak, jak w dotychczas utworzonych procedurach). Zmienne lokal­ne deklaruje się bezpośrednio lub przy pomocy komendy Dim lub Static. W przy­padku użycia instrukcji Dim wartości zmiennych są pamiętane przez program tylko podczas wykonywania danej procedury, przy użyciu instrukcji Static są pamiętane również po zakończeniu wykonywania danej procedury chyba, że wystąpił błąd w czasie wykonywania procedury, dokonano zmian w procedurze lub zakończono pracę z programem.

Jeżeli w poniższej procedurze zmienne są zadeklarowane przy pomocy instrukcji Dim, to po każdym uruchomieniu suma zawsze jest równa l0.Należy zmienić Dim na Static, wówczas po każdym uruchomieniu procedury suma zwiększa się o 10.

Przykład 20

Sub zmienna lokalna()

Dim a, suma As Integer

a = 10

suma = suma + a

MsgBox suma

End Sub

Jeżeli wszystkie zmienne mają być traktowane jako deklarowane instrukcją Static, to polecenie to należy umieścić przed nazwą procedury; wówczas nie ma znaczenia, czy poszczegolne zmienne wewnątrz procedury sa deklarowane in strukcją Dim, czy Static.

Zmień dwa pierwsze wiersze ostatniej procedury, jak poniżej:

Static Sub zmienna lokalna()

Dim a, suma As Integer

Zmienne modułu

Są rozpoznawane przez program przez wszystkie procedury znajdujące się w da­nym module. Ich deklaracja następuje na początku modułu (przed pierwszą linią pierwszej procedury) przy użyciu instrukcji Dim lub Private.

W drugiej linii modułu (za Option Explicit) zadeklaruj zmienną b jako zmien­ną modułu:

Private b As Integer

Poniższa procedura jest przykładem wykorzystania zmiennej modułu:

Przykład 21

Sub zmienna_modułu()

Dim a, suma As Integer

a = 10

b = 15

suma = suma + a + b

MsgBox suma

End Sub

Zmienne publiczne

Są rozpoznawane przez program we wszystkich modułach znajdujących się we wszystkich arkuszach. Ich deklaracja następuje na początku modułu (przed pierw­szą linią pierwszej procedury) przy użyciu instrukcji Public.

Należy wstawić drugi moduł (Wstaw = Moduł) i zadeklarować:

Public c As Integer 'W pierwszym module poniższa procedura jest przykładem

'wykorzystania zmiennej publicznej.

Przykład 22

Sub zmienna publiczna()

Dim a, suma As Integer

a = 10

b = 15

c = 25

suma = suma + a + b + c

MsgBox suma

End Sub

Teraz należy otworzyć nowy skoroszyt, wstawić moduł i wpisać poniższą procedurę:

Przykład 23

Sub zmienna publiczna()

Dim a, suma As Integer

a = 10

c = 25

suma = a + c

MsgBox suma

End Sub

Skoroszyt należy zachować pod nazwą Vbexcel 2.xls.

Zarzadzanie obiektami

Obiekt stanowi pewną całość i może być przedmiotem modyfikacji. Obiektem jest np. pojedyncza komórka, blok komórek, arkusz, skoroszyt, okno, linia. Niektóre obiekty mogą zawierać w sobie inne obiekty, np. arkusz zawiera ko­mórki, skoroszyt arkusze. Każdy obiekt posiada swoje właściwości określające jego wygląd. Przykładowo obiekt czcionka posiada m.in. właściwości: nazwa, rozmiar, kolor; właściwości komórki to: wysokość, szerokość, kolor tła.

Wartościami właściwości mogą być dane dowolnych typów, takich jak Integer, Single, String oraz typów obiektowych. Jeżeli wartością właściwości jest obiekt, to właściwość nazywamy obiektową.

Do każdego obiektu przypisane są również współpracujące z nim metody pozwalające na wykonanie na nim pewnych operacji. Przykładowo blok komórek posiada metodę kopiuj pozwalającą skopiować ten blok, metodę usuń pozwala­jącą skasować ten blok.

Metody i właściwości zwracające obiekty

Obiekt Range

Obiekt Range jest komórką lub blokiem komórek.

Najczęstszym sposobem wykorzystania właściwości jest przypisanie do niej żąda­nej wartości: Po napisaniu w module nazwy obiektu i kropki otwiera się lista z jego właściwościami. Właściwość można wybrać z listy przez dwukrotne klik­nięcie (kursor pozostaje w tym samym wierszu), zaznaczeniu jej nazwy i wci­śnięciu klawisza Enter (kursor przechodzi do następnego wiersza) lub można wpisać jej nazwę z klawiatury.

Należy 0x08 graphic
sprawdzić to pisząc następną procedurę. Po wpisaniu nazwy obiektu rozwija się lista jego właściwości, co widać na rysunku poniżej

Przykład 23

Sub Obiekt()

ActiveCell.Value = 10

End Sub

(Obiektem jest aktywna komórka, właściwość ActiveCell zwraca aktywną ko­mórkę

i przypisuje jej wartość (Value) 10).

Metoda Range (nazwa taka sama jak nazwa obiektu) zwraca komórkę lub blok komórek. Operuje na adresach komórek, w których numer kolumny jest literą.

Składnia metody jest następująca:

Range(cells_1, cells 2).

Przykład 24

Sub Range_1()

Range("C5").Value = 123

End Sub

Kolejna procedura zwraca blok komórek B2:H8 i wstawia do nich liczbę 1230,

Przykład 25

Sub Range 2()

Range("82", "H8").Value = 1230

End Sub

Metoda Cells zwraca komórkę arkusza.

Operuje na adresach komórek, w których numer kolumny może być literą lub liczbą (kolumnie A odpowiada liczba 1 itd.). Jako pierwszy podawany jest nu­mer wiersza.

Składnia metody jest następująca:

Cells(numer wiersza, numer=kolumny).

Następna procedura zwraca komórkę B 10 i wstawia do niej liczbę 12.

Przykład 26

Sub Cells_1()

Cells(10, 2).Value = 12

End Sub

Następna procedura zwraca komórkę C 10 i wstawia do nie liczbę 13.

Przykład 27

Sub Cells_2()

Cells(10, "C").Value = 13

End Sub

Metodę Range można zapisać w takiej postaci, jak w następnej procedurze, w której

w komórkach B2:K24 zostaje wpisany tekst ABC:

Przykład 28

Sub Range_3()

Range(Cells(2, 2), Cells(24, 11)).Value = "ABC"

End Sub

Uruchamianie ostatnich procedur odnosi się do aktywnego arkusza. Należy zamknąć używany dotychczas plik, i otworzyć nowy i zachować go pod nazwą Vbexcel3.xls.

Obiekt Worksheet

Obiekt Worksheet jest pojedynczym arkuszem i zwracany jest przez metod Sheets. Arkusz można wskazać, podając jego nazwę w cudzysłowiu lub nume w pakiecie arkuszy.

W przykładzie zostaje zmieniona nazwa domyślna Arkusz2 na Arkusz drugi

Przykład 29

Sub Sheets_1()

Sheets("Arkusz2").Name = "Arkusz drugi"

End Sub

Właściwość Name przypisuje podaną nazwę do wskazanego arkusza.

W tym przykładzie w bloku komórek B2:J 19 Arkusza 3 zostanie wpisani tekst XYZ.

Przykład 30

Sub Sheets_2()

Sheets(3).Select

Range("BZ", "J19").Value = "XYZ"

End Sub

Właściwość Select uaktywnia wskazany arkusz.

Następna procedura zmienia nazwy arkuszy i wpisuje odpowiednie dane do komórek Al.

Przykład 31

Sub Sheets_3()

Sheets(1).Select

Sheets(„Arkuszl”).Name = „Jeden”

Range(„A1”).Value = „Mało”

Sheets (2).Select

Sheets(„Arkusz2”).Name = „Dwa”

Range(„A1”).Value = „Średnio”

Sheets(3).Select

Sheets(„Arkusz3”).Name = „Trzy”

Range(„A1”).Value = „Dużo”

End Sub

Uruchamianie ostatnich procedur odnosi się do aktywnego skoroszytu.

Obiekt Workbook

Obiekt Workbook to skoroszyt zwracany przez metodę Workbooks. Skoroszyt można wskazać, podając jego nazwę w cudzysłowiu lub numer przyznawaj ny w kolejności otwierania plików.

Należy otworzyć nowy skoroszyt i zachować go pod nazwą Vbexcel4.xls.Mamy obecnie otwarte dwa skoroszyty, należy uaktywnić Vbexcel3.xls.

W poniższym przykładzie uaktywniony jest Arkusz 1 skoroszytu Vbexcel 4.xls. Nazwa skoroszytu zostaje zmieniona na Pierwszy, a do komórki A1 wpisywany jest tekst Komórka A1.

Przykład 32

Sub Workbooks 1()

Workbooks(„Vbexcel_4.xls”).Worksheets(„Arkuszl”).Activate

Sheets („Arkuszl”).Name = „Pierwszy”

Range(„A1”).Value = „Komórka A1”

End Sub

Właściwość ActiveWorkbook związana jest z aktywnym skoroszytem.

Ochrona skoroszytu Vbexcel_3.xls, (sprawdzić to należy = menu Narzę­dziu, Ochrona) realizowana jest za pomocą metody Protect.

Przykład 33

Sub Workbooks 2()

ActiveWorkbook.Protect

End Sub

Ciągi obiektów

Określenie konkretnego obiektu w postaci ciągu obiektów wynika z faktu, że pewne obiekty mogą zawierać w sobie inne obiekty. Tworzona jest więc hierar­chia obiektów od bardziej ogólnych do najbardziej szczegółowych. Jeżeli pewna procedura zawierałaby np. instrukcję: Range("A1").Value = 100, to komórce A1 aktywnego arkusza zostałaby przypisana wartość 100; jeżeli chcielibyśmy taką wartość umieścić w komórce A1 konkretnego arkusza instrukcja wygląda­łaby następująco:

Worksheets("Nazwa Arkusza").Range("A1").Value = 100

Natomiast jeżeli chcielibyśmy taką wartość umieścić w komórce A1 konkret­nego skoroszytu w konkretnym arkuszu, to instrukcja miałaby następującą postać:

Workbooks("Nazwa skoroszytu").Worksheets("Nazwa Arkusza"). _

Range("A1").Value = 100.

W ostatnim przypadku należy podać nazwę skoroszytu i arkusza oraz wskazać komórkę.

Przypisanie obiektu do zmiennej

Przypisanie obiektu do zmiennej następuje przy pomocy komendy Set i ma następującą postać:

Set nazwa_zmiennej = nazwa_obiektu

Przypisanie obiektu do zmiennej znacznie skraca czas pisania procedur w przy­padku, gdy często używa się tego samego obiektu.

Jeżeli pewna procedura zawierałaby następujące instrukcje:

Workbooks("Vbexcel_4.xls").Sheets("Arkuszl").Range("A1").Value =100 Workbooks("Vbexcel_4.xls").Sheets("Arkuszl").Range("A2").Value =200 Workbooks("Vbexcel_4.xls").Sheets("Arkuszl").Range("A3").Value =300 Workbooks("Vbexcel 4.xls").Sheets("Arkuszl").Range("A4").Value =400 Workbooks("Vbexcel=4.xls").Sheets("Arkuszl").Range("A5").Value =500,

to ich zapis można uprościć do postaci:

Set Obiekt = Workbooks("Vbexcel 4.xls").Sheets("Arkuszl")

Obiekt.Range("A1").Value =100

Obiekt.Range("A2").Value =200

Obiekt.Range("A3").Value =300

Obiekt.Range("A4").Value =400

Obiekt.Range("A5").Value =500

W przypadku pojawiania się w kolejnych instrukcjach tego samego obiektu dal­sze uproszczenie ich zapisu można uzyskać, stosując instrukcję With.

Dotychczasowe przykłady wymagały aktywnego lub otwartego obiektu.

Użycie metod: Open pozwoli otworzyć plik, wykonać na nim operacje (zmiana nazwy Arkusz 1 na Drugi), Close zamknąć go i przy pomocy argumentu Save­Changes zapisać zmiany.

Przed uruchomieniem poniższej procedury należy zamknąć plik Vbexcel 4.xls.

Przykład 34

Sub Workbooks_3()

Workbooks.Open "C:\Vbexcel\Vbexcel 4.xls"

Sheets("Arkusz2").Activate

Sheets("Arkusz2").Name = "Drugi"

ActiveWorkbook.Close SaveChanges: =True

End Sub

Należy otworzyć plik Vbexcel4.xls i sprawdzić zmiany:

Składnia metody Open jest następująca:

Workbooks.Open "nazwa=pliku(ze ścieżką dostępu)"

lub:

Workbooks.Open _

FileName: _ "nazwa pliku(ze ścieżką dostępu)"

Składnia metody Close jest następująca:

Obiekt.Close SaveChanges, FileName

Obiektem może być pojedynczy skoroszyt Workbook, zestaw skoroszytów Workbooks lub aktywny skoroszyt ActiveWorkbook.

Argument SaveChange może mieć wartość:

True = zachowanie zmian przed zamknięciem pliku,

False = zamknięcie pliku bez zachowania zmian.

Argument FileName określa nazwę (ze ścieżką dostępu) ujętą w cudzysłów, pod jaką plik zostanie zachowany na dysku. Nie podanie tego argumentu powoduje zachowanie pliku pod bieżącą nazwą.

W celu zachowania pliku pod nową nazwą z zachowaniem zmian należałoby napisać:

ActiveWorkbook.Close

SaveChanges: =True,

FileName: ="nazwa=pliku (ze ścieżką dostępu)"

Metoda Add pozwala na utworzenie nowego skoroszytu; jej składnia ma postać:

Workbooks.Add template

gdzie argument template może być:

xlWorksheet = skoroszyt będzie zawierał jeden arkusz,

X1Chart = skoroszyt będzie zawierał jeden arkusz z wykresem,

nazwą pliku (ze ścieżką dostępu) z arkuszem wzorcowym ujętą w cudzysłów.

W poniższym przykładzie zostanie utworzony nowy skoroszyt z jednym arku­szem

o nazwie "Tylko jeden" i zachowany na dysku pod nazwą Nowy=plik.xls.

Metoda Quit pozwala na automatyczne zamknięcie Excela; jej składnia ma postać:

Application.Quit

Obiekt Application to program Excel.

Przykład 35

Sub Workbooks_4()

Workbooks.Add _

template: =xlWorksheet

template: =xlChart

Sheets("Arkuszl").Name = "Tylko jeden"

ActiveWorkbook.Close

SaveChanges: =True, _

FileName: ="c:\Nowy plik.xls"

Application.Quit

End Sub

Pomoc

Co zrobić, jeżeli chcemy wykonać pewne działanie w Visual Basicu,a nie wiemy, jak to zrobić (najczęściej nie znamy metody lub właściwości)?.

Rozwiązaniem jest skorzystanie z menu Pomoc (otwarcie menu powinno pastą­pić przy otwartym oknie modułu), wybranie opcji Spis treści i indeks, zakładki Zawartość, Visual Basic= Opis języka dla programu Microsoft Excel, Skrót do opisu dla Opis języka dla programu Microsoft Excel i wpisanie szukanego terminu.

Można również w oparciu o dostępne opcje Menu zarejestrować makro i prze­analizować jego kod.

Rejestrowanie makra

Z menu Narzędzia należy wybrać polecenie Makro , Zareje­struj nowe makro (można podać jego nazwę lub pozostawić domyślną Ma­krol), którego zadaniem jest zawijanie tekstu w komórce I4. Ustawić kursor w tej komórce, wpisujemy tekst Rejestracja makra, na pasku formuły kliknąć przycisk Wpis. Następnie z menu Format wybrać polecenie Komórki, kliknąć kartę Wyrównanie i zaznaczyć pole wyboru Zawijaj tekst, kliknąć OK. Z menu Narzędzia wybrać polecenie Makro, Zatrzymaj reje­strowanie (można to również zrobić, klikając przycisk Zatrzymaj rejestro­wanie na pasku narzędzi).

Kod makra można wyświetlić na ekranie, wybierając z menu Narzędzia opcje Makro, Makra. Następnie należy zaznaczyć nazwę makra i kliknąć przycisk Edycja. Można również przejść do okna modułu, w którym znajduje się zareje­strowane makro.

BHP.

Podstawowe zagrożenia zdrowia związane z pracą przy komputerze.

Wśród osób pracujących przy komputerach dominują schorzenia oczu, głównie przewlekłe zapalenia spojówek. W ostatnich latach sytuacja użytkowników komputerów pod tym względem uległa olbrzymiej poprawie.

Praktycznie wszystkie współczesne monitory spełniają surowe międzynarodowe standardy, określające dopuszczalne promieniowanie elektromagnetyczne i gamma oraz minimalną częstotliwość poziomego odświeżania obrazu. Użytkownik Windows musi jedynie sprawdzić, czy system poprawnie rozpoznał model monitora i optymalnie ustawił istotne parametry pracy. Warto tu przypomnieć, że zgodnie z najnowszą szwedzką normą TCO 99 zalecane, uznane za nie psujące wzroku odświeżanie obrazu wynosi 85 herców.

Choć zagrożenie dla wzroku jest mniejsze niż kilka lat temu, nie znaczy to jednak, że komputer stał się narzędziem bezpiecznym. Dopiero teraz zaczynają się ujawniać długotrwałe negatywne skutki wieloletniej pracy przy klawiaturze.

Zespół cieśni nadgarstka - schorzenie to ujawnia się po ok. 10=12 latach codziennej wielogodzinnej pracy w warunkach niezgodnych z zasadami ergonomii. Ponieważ masowa komputeryzacja rozpoczęła się w naszym kraju po 1989 roku, można się spodziewać, że w najbliższych latach pojawiać się będzie coraz więcej ofiar RSI oraz innych schorzeń, których źródło leży w niezgodnej z zaleceniami specjalistów pracy

z klawiaturą i myszą. Tymczasem aby uniknąć problemów, wystarczy dobrze przygotować stanowisko pracy oraz robić przerwy na prostą gimnastykę palców

i nadgarstka. Skuteczną profilaktyką jest przeciągnięcie się, strzepnięcie dłoni i krótki spacer, podczas którego odpoczywają napięte w czasie pracy mięśnie przedramion i dłoni.

Innym, rzadko wiązanym z pracą przy klawiaturze, schorzeniem są zmiany zwyrodnieniowe szyjnego odcinka kręgosłupa. Większość osób zgłasza się

z dolegliwościami oczu, ale to schorzenia kręgosłupa są głównym przeciwwskazaniem dla pracy przy komputerze, gdyż wykluczają wielogodzinne przebywanie w pozycji siedzącej. Przestrzegając przepisów BHP, można uniknąć takich problemów. Wystarczy w czasie pracy co godzinę zrobić 10 minut przerwy lub co 2 godziny = 20 minut.

Działanie prądu elektrycznego na organizm ludzki.

Prąd elektryczny przepływający przez ciało człowieka wywołuje w nim zmiany chemiczne i biologiczne groźne dla zdrowia i życia. Działanie prądu może się objawiać

w postaci zmian elektrolitycznych , oparzeń oraz zaburzeń czynności fizjologicznych.

Niebezpieczeństwo porażenia prądem elektrycznym zależy od jego wartości , czasu rażenie (przepływu prądu przez organizm) oraz częstotliwości. Najniebezpieczniejsze są prądy o częstotliwości sieciowej 50=60Hz, gdyż jest ona zbliżona do częstotliwości bioprądów w organizmie. Niebezpieczeństwo porażenia prądem elektrycznym jest mniejsze dla prądu stałego oraz zmniejsza się wraz ze zwiększeniem częstotliwości ponad 50=60 Hz.

Prąd przepływający przez ciało człowieka jest proporcjonalny do napięcia dotykowego ( napięcie między dwoma elementami przewodzącymi, które znajdują się

w zasięgu ręki) i odwrotnie proporcjonalny do rezystancji ciała. Rezystancja ciała człowieka zmienia się w szerokim zakresie i jest zależna od: warunków środowiskowych; stanu naskórka; indywidualnych cech człowieka.

Przy prądzie przemiennym płynącym przez ciało człowieka powinno się uwzględniać nie tylko rezystancję, lecz również reaktancję, ale dla uproszczenia przy obliczeniach jej wartości jest pomijana. Wypadkowa rezystancja ciała człowieka składa się z rezystancji skóry i rezystancji wewnętrznej organizmu. Rezystancja wewnętrzna jest niewielka i wynosi od 500 do 1000 Ω. Rezystancja skóry natomiast zmienia się

w szerokich granicach. Przy suchym naskórku wynosi od 5000 Ω do 100 000 Ω i może zmniejszać się pod wpływem wilgotności, przedłużającego się czasu rażenia i wzrostu napięcia rażeniowego. Na tej podstawie przyjęto, że minimalna niebezpieczna dla człowieka wartość prądu płynącego przez ciało wynosi : 30mA prądu przemiennego

i 10mA prądu stałego. Korzystając z prawa Ohma i podstawiając do wzoru niebezpieczne wartości prądu płynącego przez ciało człowieka oraz rezystancję ciała w danych warunkach środowiskowych (przyjmując najniższą wartość) otrzymuje się maksymalne wartości napięć dopuszczalnych dla człowieka = napięci dotykowe bezpieczne.

W warunkach środowiskowych, w których rezystancja ciała człowieka w stosunku do ziemi wynosi co najmniej 1000 Ω (pomieszczenie o wilgotności względnej nie przekraczającej 75% i podłożu nieprzewodzącym), za napięcie bezpieczne uznaje się napięci 50 V dla prądu przemiennego i 100V dla prądu stałego. Gdy rezystancja ciała jest mniejsza niż 1000 Ω, napięcie bezpieczne wynosi 25 V dla prądu przemiennego i 50 V dla prądu stałego.

Środki ochrony przeciwporażeniowej.

Ochrona przeciwporażeniowa w instalacjach i urządzeniach elektrycznych ma na celu niedopuszczenie do przepływu przez ciało człowieka prądu rażeniowego lub ograniczenie czasu przepływu prądu przez szybkie wyłączenie zasilania, aby zapobiec powstaniu groźnych dla zdrowia i życia skutków.

Ochronę przeciwporażeniową można podzielić na trzy grupy:

1. Ochronę przez stosowanie napięć bezpiecznych,

2. Ochronę przed dotykiem bezpośrednim do części czynnych obwodu elektrycznego (ochrona podstawowa),

  1. Ochronę przed dotykiem pośrednim do części przewodzących dostępnych, na których

w wyniku uszkodzenia izolacji pojawiło się napięcie dotykowe o wartości mogącej spowodować w danych warunkach środowiskowych przepływ prądu rażeniowego (ochrona dodatkowa).

Zgodnie z przepisami w sprawie ochrony przeciw porażeniowej należy stosować

w zależności od zagrożenia następujące środki:

Ochrona podstawowa ma zapobiegać:

• Zetknięciu się człowieka z przewodzącymi elementami obwodów elektrycznych, znajdujących się pod napięciem;

• Udzielaniu się napięcia przedmiotom lub elementom przewodzącym, które normalnie nie powinny znajdować się pod napięciem;

• Szkodliwemu działaniu na otoczenie łuku elektrycznego, który mógłby wystąpić przy pracy urządzeń.

Ochrona podstawowa polega więc przede wszystkim na umieszczeniu elementów znajdujących się pod napięciem poza. zasięgiem ręki człowieka, a wiec stosowanie przegród, siatek lub poręczy z materiału izolacyjnego.

Ochrona dodatkowa ma zapobiegać utrzymywaniu się niebezpiecznego napięcia dotykowego. Polega ona na zastosowaniu, poza ochroną podstawową jednego

z następujących środków:

• Uziemienia ochronnego;

• Zerowania;

• Sieci ochronnej;

Uziemienia ochronne stanowią najbardziej rozpowszechniony rodzaj ochrony dodatkowej, stosowane do maszyn i urządzeń elektrycznych. Celem stosowania uziemienia ochronnego jest zrównanie potencjału uziemionych przedmiotów z potencjałem ziemi.

Zerowanie może być stosowana w przystosowanych do tego sieciach trójfazowych

o napięciu poniżej 300 V. Polega ono na połączeni dostępnych części metalowych urządzeń z uziemionym przewodem zerowym.

Sieć przewodów ochronnych wolno stosować w urządzeniach przemiennoprądowych

i stałoprądowych niezależnie od napięcia. Wszystkie dostępne części metalowe nie znajdujące się pod napięciem, oraz dostępne metalowe konstrukcje wsporcze i osłony powinny być połączone z przewodem ochronnym .

Zagrożenia dla zdrowia człowieka.

Najbardziej znany jest problem uciążliwości wpływu monitora na oczy. Problemy ze wzrokiem to najpowszechniejsza dolegliwość, dokuczająca jednak nie tylko miłośnikom pecetów. Wśród osób pracujących przy komputerach dominują schorzenia oczu, głównie przewlekłe zapalenia spojówek.

Praktycznie wszystkie współczesne monitory spełniają surowe międzynarodowe standardy, określające dopuszczalne promieniowanie elektromagnetyczne i gamma oraz minimalną częstotliwość poziomego odświeżania obrazu. Użytkownik Windows musi jedynie sprawdzić, czy system poprawnie rozpoznał model monitora i optymalnie ustawił istotne parametry pracy. Warto tu przypomnieć, że zalecane, uznane za nie psujące wzroku odświeżanie obrazu wynosi 85 herców.

Poprawne ustawienie dłoni i przedramion podczas pracy przy komputerze może uchronić przed przewlekłymi schorzeniami. W zachowaniu właściwej pozycji mogą pomóc klawiatury ergonomiczne.

Ergonomia=lokalizacja i oświetlenie stanowiska pracy.

By spełnić wymagania dotyczące prawidłowego oświetlenia stanowiska pracy, niezbędne jest dobre rozplanowanie jego usytuowania w pomieszczeniu. Na wybór pokoju nie mamy zwykle wpływu, jeśli jednak moglibyśmy wybierać, należy na gabinet zarezerwować pomieszczenie nie wyższe niż 3 metry, najlepiej z oknami od strony północnej. Okna te nie powinny być zbyt duże; dobrze, jeśli są tylko w jednej płaszczyźnie. Nie ma oczywiście mowy o przeszklonych ścianach.

Stanowisko komputerowe ustawiamy tak, by ekran znajdował się na tle ściany bezokiennej, bokiem do okna, ale w odległości nie mniejszej niż 1 metr. Przy samym oknie możemy ulokować stanowisko pracy nie wyposażone w komputer. W żadnym wypadku okno = zwłaszcza od strony innej niż północna = nie powinno znajdować się za plecami użytkownika. Monitor należy tak ustawić, by żaden fragment okna nie odbijał się od ekranu pod kątem większym niż 45° od osi wzroku. Jeśli nie da się tego osiągnąć, warto zadbać o odpowiedniej wielkości przegrodę zasłaniającą okno. Przegroda taka nie musi być wysoka, powinna tylko zasłaniać dostęp bezpośredniego światła z okna do ekranu

Literatura.

M. Jeznach „Visual Basic w Excelu od podstaw”

PRACA DYPLOMOWA

- 32 -

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Praca w środowisku programistycznym, excel
Zastosowanie arkusza kalkulacyjnego Excel w rachunkowości praca kontrolna
praca magisterska technologia informacyjna zadania w excel u
praca z uczniem zdolnym i słabym 2
Praca psychoterapeutyczna z DDA wykład SWPS
PRACA NA 4 RECE (aga)(1)[1]
praca 4
PRACA HODOWLANA Podstawy
Praca osób niepełnosprawnych
PRACA Z UCZNIEM NIEWIDOMYM I SŁABO WIDZĄCYM
8 Właściwa Praca, moc, energia całość
Praca zespolowa z elementami komunikacji interpersonalnej ed wczesn
Prezentacja praca dyplom
Praca szkoly w zakresie organizacji opieki pomocy
CECHY STRUKTUR ORGANIZACYJNYCH PRACA GRUPOWA 17 KWIETNIA[1]
PRACA Z DZIECKIEM NIESMIALYM

więcej podobnych podstron