visual basic

background image

1

Visual Basic dla MS Word

i MS Excel

background image

2

Język Visual Basic

• Kiedy używamy makr?:

– Trudne operacje (ktoś za nas rozwiązał

problem),

– Często wykonywane operacje.

• Spotyka się wersje języka VB dla:

– Microsoft Word (rzadko stosowane makra, bo

za bardzo indywidualna praca z tekstem),

– Microsoft Excel (częściej, bo struktury danych

są jednolite w całym arkuszu),

– Microsoft Access (do organizacji zarządzania

bazą danych).

background image

3

Tworzenie makr

• Przechodzimy do

menu:

– NARZĘDZIA

• MAKRO

– ZAREJESTRUJ

NOWE MAKRO

background image

4

Tworzenie makr - cd

• W okienku

pokazanym obok
możemy przypisać
makro do skrótu
klawiaturowego
lub do paska
narzędzi.

background image

5

Tworzenie makr - cd

• Jeśli wybierzemy klawiaturę, to pojawia

się okno pokazane na rys. obok.

• W tym okienku możemy dostosować nasze

ustawienia

background image

6

Tworzenie makr - cd

• Zatrzymanie rejestrowania jest

możliwe po kliknięciu przycisku
„Zatrzymaj rejestrowanie”

• Można w dowolnym momencie

wstrzymać rejestrowanie.

background image

7

Zmiana ustawień makra

• Makro działa tylko w obrębie pliku w którym jest zapisane. Aby

makro było widoczne z każdego pliku w Wordzie należy zapisać
je w szablonie Normal.dot.

• Jednak należy unikać zmianami w tym pliku, jeśli już, to należy

zrobić kopię tego pliku.

• Przykładowe makro zmienia wszystkie parametry naszego

tekstu. Jeśli chcieli aby makro np. tylko pogrubiało i zmieniało na
kursywę bez zmiany wielkości liter. Wyobraźmy sobie dokument
z tekstem źródłowym który ma być zapisany kursywą pierwsza
część tego tekstu jest napisana Arialem a druga inną czcionką.

• Aby dokonać zmian przechodzimy do edytora VBA, który

umożliwia pełną kontrolę nad naszymi makrami. Aby się tam
dostać naciskamy Alt+[F11] lub w menu -narzędzia- wybieramy
-makro- edytor -Visual Basic-.

• Uruchomiona aplikacja jest częścią pakietu Office.

background image

8

Zmiana ustawień makra

• Załóżmy, że chcemy aby teksty, z których

często korzystamy miały rozmiar 10
punktów oraz były pisane kursywą.

• W tym celu uruchamiamy rejestrowanie

makra. Następnie określmy parametry
czcionki menu -format- i -czcionka- teraz
zmieńmy wielkość a następnie, format
czcionki na kursywę. Teraz można już
przycisnąć przycisk Stop.

• Zostało utworzone makro, jego tekst jest

pokazany na następnym slajdzie.

background image

9

Przykładowe makro

Sub Makro1()
' Makro1
' zmiana formatowania tekstu
With Selection

.Font .Name = "Times New

Roman"

.Size = 10
.Bold = False
.Italic = True
.Underline = wdUnderlineNone
.StrikeThrough = False
.DoubleStrikeThrough = False

.Shadow = False
.Hidden = False
.SmallCaps = False
.ColorIndex = wdAuto
.Superscript = False
.Subscript = False
.Spacing = 0
.Scaling = 100
.Position = 0
.Animation =
wdAnimationNone
End With

End Sub

background image

10

Makropolecenia w Excel

• Makropolecenie to spis czynności do

wykonania w arkuszu Excela – mogą to być
wpisywane dane, wzory, formatowanie i inne
operacje. Tworzy się je, aby zautomatyzować
często wykonywane sekwencje operacji.
Makropolecenia zapisane są w języku Visual
Basic.

• Często, jeśli chcemy się dowiedzieć, jak brzmi

polecenie Visual Basic’a odpowiadające
operacjom na arkuszu, można stworzyć
proste makro i je obejrzeć.

background image

11

Nagrywanie makra

• Podobnie jak dla Wrod’a

background image

12

Oglądanie makra

• Aby obejrzeć i zmienić treść

makropolecenia należy wybrać z menu:
Narzędzia, Makro, Edytor Visual Basic
lub wcisnąć kombinację klawiszy Alt-F11

• W edytorze Visual Basica po lewej stronie

powinien znajdować się Explorator
Projektu, a po prawej obiekt, z którym w
danym momencie pracujemy, pokazuje to
rysunek na następnym slajdzie

background image

13

Okno edytora makr

background image

14

Przykład

• Pomiary ze stacji automatycznej zostały zapisane do

pliku tekstowego w formacie charakterystycznym dla
urządzenia pomiarowego. Po wczytaniu do Excela
dane nie są gotowe do analizy, gdyż i data i wartość
pomiaru znajdują się w tych samych komórkach.

• Należy więc, korzystając z możliwości, jakie daje

Visual Basic dla Excela, rozdzielić te dane do
osobnych komórek. Następnie dane zostaną
zanalizowane pod kątem przekroczenia wartości
dopuszczalnych. Wartość dopuszczalna będzie
podawana przez użytkownika. Dane o pomiarach,
które przekraczają podaną wartość będą przepisane
do osobnego arkusza, a na arkuszu wejściowym
zaznaczone kolorem.

background image

15

Przykład- cd

• Przejść do Edytora Visual Basica (skorzystać

ze skrótu klawiaturowego Alt-F11 lub z menu:
Narzędzia/Makro/Edytor Visual Basic)

• Program będzie uruchamiany z formularza.

Utworzyć nowy formularz. Dodać przycisk
kończenia pracy z formularzem, a następnie
stworzyć przycisk o nazwie Przygotuj z
opisem: Przygotuj dane. Po dwukrotnym
kliknięciu w przycisk można przejść do
procedury obsługi zdarzenia: kliknięcie w
przycisk
.

background image

16

Przykład -cd

• Należy napisać procedurę, która oddzieli

datę od pomiaru (separatorem jest znak
gwiazdki), datę pozostawi w komórce,
pomiar wpisze do komórki obok.

• Aby podzielić tak zawartość komórki

trzeba, stosując funkcje operacji na
tekstach, podzielić tekst na dwie części:
od początku do gwiazdki i od gwiazdki
do końca.

background image

17

Przykład - algorytm

Algorytm wygląda więc następująco:
• ustawić kursor w pierwszej komórce z danymi

(tu: A4)

• dopóki komórka nie jest pusta, powtarzaj:

– znaleźć nr pozycji, na której jest gwiazdka (jeśli brak

gwiazdki – wyświetlić komunikat)

– zapamiętać w zmiennej tekst od początku do

gwiazdki w formie daty

– zapamiętać w zmiennej tekst od gwiazdki do końca

tekstu w formie liczby

– datę zapisać w aktualnej komórce, liczbę zapisać w

komórce obok, po prawe stronie

– przejść do następnej komórki

• koniec pętli

background image

18

Przykład - cd

• Z algorytmu wynika, że potrzebne są następujące

zmienne:

nr (pozycji gwiazdki w tekście),
data i wartość.

• Należy wykorzystać funkcje operujące na ciągach

znaków:

mid(tekst, start, ile)
len(tekst)
instr(ciag_przeszukiwany, ciag_szukany) – funkcja ta zwraca

nr pozycji na której w ciągu przeszukiwanym znajduje się
poszukiwany ciąg znaków. Jeśli ciąg nie zostanie znaleziony,
funkcja zwraca wartość 0. Np. aby znaleźć miejsce, gdzie w
zmiennej dane znajduje się gwiazdka należy posłużyć się
instrukcją:

• dim gdzie as integer, dane as string
• dane=”jeden*dwa”
• gdzie=instr(dane,”*”)

background image

19

Przykład - cd

• Procedura analizy danych wymaga

znajomości operacji Visual Basic’a dla Excela
dotyczących sterowania kursorem,
zaznaczania i odczytywania obszarów,
operowania na arkuszach itp.

• Oto krótki spis kilku takich operacji:

– wybór komórki o podanym adresie:

• Range(adres).Select
• lub Cells(nr_wiersza, nr_kolumny).Select

background image

20

Przykład - cd

• wybór zakresu komórek o znanym adresie

Range(adres).Select, przy czym adres zakresu
zapisany w postaci
komórka_początkowa:komórka_końcowa, np.
wybór (podświetlenie) zakresu A6:D10 to
polecenie: Range(„A6:D10”).Select

lub Range(Cells(nr_wiersz_kom_pocz,
nr_kol_kom_pocz), Cells(nr_wiersz_kom_konc,
nr_kol_kom_konc))

• komórka, w której stoi kursor:

Activecell

• pobranie adresu zaznaczonego obszaru:

Selection.Address

background image

21

Przykład - cd

• Można zadeklarować zmienną, do której można wpisać adres

obszaru wybranego przez użytkownika. Wykorzystując
odpowiednie funkcje można następnie poznać np. adres
początkowej komórki obszaru.

• liczba wierszy i kolumn w zaznaczonym obszarze:

– Selection.Rows.Count
– Selection.Columns.Count

• numer wiersza lub kolumny komórki aktywnej, zaznaczonego

obszaru, obszaru o podawanym adresie itp.

– Activecell.Row Activecell.Column
– Selection.Row Selection.Column
– Range(adres).Row

Range(adres).Column

• dodanie nowego arkusza

– Sheets.Add

• możliwe jest dodanie arkusza z jednoczesnym nadaniem mu

nazwy:

– Sheets.Add.Name=”xxxxxx”

background image

22

Przykład - cd

• Arkusze, poza nazwami, mają tez swoje numery, po których

można się do nich odwoływać. Podanie w obiekcie Sheets w
nawiasach numeru oznacza odwołanie do arkusza o tym
numerze. Pierwszy arkusz istniejący w pliku ma numer 1.

• Przejście do arkusza o podanym numerze

– Sheets(numer).Select

• przejście do arkusza o podanej nazwie:

– Sheets(nazwa).Select

• oznaczenie aktywnego arkusza

– Activesheet

• pobranie (nadanie) nazwy arkuszowi

– np. Sheets(numer).name
– Activesheet.name

background image

23

Przykład - cd

• nadanie nazwy “ABC” arkuszowi nr 2 jest

realizowane przez instrukcję:

– Sheets(2).Name=”ABC”

• sprawdzenie ile jest arkuszy (i jaki jest numer

ostatniego)

– Sheets.Count

• przeniesienie arkusza (przed lub za wskazany arkusz)

– Sheets(nr lub nazwa).Move Before := Sheets(nr lub nazwa)
– Sheets(nr lub nazwa).Move After := Sheets(nr lub nazwa)

• skasowanie akrusza

– Sheets(nr lub nazwa).Delete

background image

24

Przykład - cd

• Aby zapisać powyższe polecenia skorzystamy z tzw. okna instrukcji

bezpośrednich. Okno to otwiera się (w edytorze Visual Basic) poleceniem
View/Immediate Window (Widok/Instrukcje bezpośrednie). Polecenia
wpisywane do tego okna wykonywane są natychmiast. Aby zobaczyć
wynik należy instrukcję poprzedzić znakiem zapytania. Np. aby wykonać
instrukcję podającą zawartość komórki D6 w oknie instrukcji
bezpośrednich należy wpisać:

– ? Range(„d6”).Fomula

• Przykładowo można wykonać następujące polecenia:

– dodać nowy arkusz, przenieść go na koniec arkuszy
– sprawdzić, jaki jest numer tego arkusza
– nadać mu nazwę „zadanie” (sprawdzić efekt na arkuszu)
– przenieść kursor do tego arkusza (sprawdzić efekt na arkuszu)
– wpisać instrukcję zaznaczającą obszar A3:D8 (sprawdzić efekt na arkuszu)
– przejść na arkusz, myszką zaznaczyć dowolny inny obszar, wrócić do Edytora

Visual Basic’a, sprawdzić, jaki jest adres zaznaczonego obszaru

– sprawdzić, ile jest wierszy w zaznaczonym obszarze
– usunąć arkusz „zadanie”
– Po wykonaniu zadań zamknąć okno instrukcji bezpośrednich.

background image

25

Przykład -cd

• Następny krok to przygotowanie procedur

analizy danych. Wartość dopuszczalną
podaje użytkownik w odpowiednim polu na
formularzu.

• W tym celu należy dodać do formularza

etykietę o dowolnej nazwie; we właściwości
Caption wpisać Wartość dopuszczalna.
Obok umieścić pole tekstowe o nazwie prog.
Dodać przycisk o nazwie przekroczenia, z
opisem Analizuj dane. Na następnym
slajdzie przedstawiony jest przykładowy
formularz.

background image

26

Przykład- cd

background image

27

Przykład- cd

Podstawowe kroki w algorytmie to:
• jeśli nie jest wpisana wartość dopuszczalna –

wyświetlić komunikat, w przeciwnym
wypadku kontynuować;

• jeśli dane nie zostały przygotowane (np. jest

gwiazdka w komórce A4) – wyświetlić
komunikat, w przeciwnym wypadku
kontynuować;

– utworzyć nowy arkusz
– nadać mu nazwę przekroczenia
– przesunąć go za ostatni istniejący arkusz (jest to

operacja z jednej strony „kosmetyczna”, z drugiej
strony, w naszym przypadku dająca pewność, że
arkusz ze wszystkimi danymi ma numer jeden

background image

28

Przykład - cd

– w komórce A1 nowego arkusza wpisać tekst: „Lista

pomiarów przekraczających wartość”; dołączyć do
wypisywanego ciągu znaków wartość dopuszczalną
wpisaną w polu na formularzu

– ustawić kursor w następnej komórce
– wrócić do pierwszego arkusza
– przechodzić kursorem po wszystkich komórkach z

danymi.

• jeśli wartość pomiaru jest większa niż wartość

dopuszczalna:zaznaczyć dane na amarantowo
(Activecell.Font.ColorIndex=7)

• przepisać dane do odpowiedniej komórki drugiego

arkusza

background image

29

Przykład - treści

procedur

Private Sub przygotuj_Click()
Dim nr As Integer, dat As Date, war As Single
Range("a4").Select
Do While ActiveCell.Formula <> ""

nr = InStr(ActiveCell.Formula, "*")
if nr=0 then
MsgBox(„Błędna dana w komórce ”+Activecell.Address)
else
dat = CDate(Mid(ActiveCell.Formula, 1, nr - 1))
war = Val(Mid(ActiveCell.Formula, nr + 1,Len(ActiveCell.Formula)-nr))
ActiveCell.Formula = dat
ActiveCell.Offset(0, 1).Formula = war
endif
ActiveCell.Offset(1, 0).Select

Loop
End Sub

background image

30

Przykład - treści

procedur

Private Sub przekroczenia_Click()
Dim adres_p As String, nazwa_arkusza As String, wart As Single, dat As Date
nazwa_arkusza = "przekroczenia"
If prog.Text = "" Then

MsgBox ("Wpisz wartość progową!")

Else

Sheets(1).Select
If InStr(Range("a4").Formula, "*") <> 0 Then
MsgBox ("Dane nie są przygotowane!")
Else
Sheets.Add.Name = nazwa_arkusza
ActiveSheet.Move after:=Worksheets(Worksheets.Count)
Range("a1").Formula="Lista pomiarów przekraczających wartość”+ prog
Range("a2").Select
adres_p = ActiveCell.Address
Sheets(1).Select
Range("a4").Select

background image

31

Przykład - treści

procedur

Do While ActiveCell.Formula <> ""
wart = Val(ActiveCell.Offset(0, 1).Formula)
dat = CDate(ActiveCell.Formula)
If wart > Val(prog.Text) Then
ActiveCell.Font.ColorIndex = 7
ActiveCell.Offset(0, 1).Font.ColorIndex = 7
Sheets(nazwa_arkusza).Select
Range(adres_p).Formula = dat
Range(adres_p).Offset(0, 1).Formula = wart
adres_p = Range(adres_p).Offset(1, 0).Address
End If
Sheets(1).Select
ActiveCell.Offset(1, 0).Select
Loop
End If

End If
End Sub


Document Outline


Wyszukiwarka

Podobne podstrony:
Visual Basic Przykładowe zadania , Studia i nauka, Visual Basic
Lab6, Visual Basic Lab 6a, Visual Basic Lab 3
Leksykon VISUAL BASIC, r00-05, Rozdział X
Visual Basic Zdarzenia , Studia i nauka, Visual Basic
02 Wprowadzenie do Visual Basic cwiczenia przygotowujace
Makra programowanie w Visual Basic
Mastering Visual Basic NET Database Programming
Leksykon VISUAL BASIC, r01-05, Rozdział X
Visual Basic Operatory , Studia i nauka, Visual Basic
Visual Basic NET
Visual Basic Kontrolki , Studia i nauka, Visual Basic
forms, Visual Basic
Visual Basic Platforma programistyczna, Studia i nauka, Visual Basic
Visual Basic Tworzenie aplikacji, Studia i nauka, Visual Basic
Lab5, Visual Basic Lab 5b, Visual Basic Lab 3
Lab6, Visual Basic Lab 6, Visual Basic Lab 3

więcej podobnych podstron