PROG. APLIKACJI UŻYTKOWYCH- WYKŁAD 10. 15.12.2010r.
**Deklaracje zmiennych Dim str30 As String*30 do poprzedniego wykładu
1. Instrukcje iteracyjne
PASCAL:
while…do, repeat…until,for…do
VBA:
while warunek
instrukcje
wend
do (While|Until) warunek
instrukcje
Loop
do
instrukcje
Loop (while|until) warunek
For zm=wp to wk [step krok] o ile ma się zmieniać wartość zmiennej
instrukcje
Next[zm]
2. Podprogramy
PASCAL:
Procedure identyfikator(parametry);
Begin…End
Function identyfikator(parametry): typ_wartosci;
Begin…End
VBA:
Sub identyfikator(parametry)
…
End Sub
Function identyfikator(parametry) As typ_wartosci
…
End Function
3. Adresy- odwołania do komórek
Cells(2,3).Value=wartość
Range(“2”).Value=wartość
zm=workbooks(“plik”).Sheets(“arkusz1”).Range(“A1:D5”).Value
Np.
Range(“1:1”) wiersz 1
Range(“A:A”) kolumna A
4. Znaki specjalne
“ “ -wartość napisowa(string)
` -rozpoczęcie komentarza w wierszu
_ -łącznik wiersza podzielonego na kilka linii
& -łącznik tekstu i wartości numerycznej
Przykłady:
`To jest przykład procedury w VBA
Sub FormatowanieKomorekZakresu()
workbooks(“plik”).Sheets(“arkusz1”).Range(“A1:D5”)_
.Font.Bold=True
End Sub
Nr=100
Str=”NumerStudenta”&Nr
`Numer stuenta
`str=”Numer studenta100”
5. Jak stworzyć makra
Narzędzia/Makro/Zabezpieczeniaśrednie
Pasek narzędzi/VBA
rejstracja makry: rozpoczynanie • I zakończenie
żeby uruchomić
6. Funkcje- przykład
edytor VBA na pasku narzędzi
Alt+F11
Ctr+1- pomoc
po lewej stronie: Insent/Module
,- przecinek do oddzielania
Przykład
A.
Function f(arg1 as integer, arg2 as integer) as integer
if arg1>arg2 then
f=arg1
else
f=arg2
endIf
end function
{wstawianie-wybierasz to z funkcji/użytkownika}
B.
Function f(arg1 as integer, arg2 as integer) as integer
Dim wyn As Integer
if arg1>arg2 then
wyn=1
elseif arg1<arg2 then
wyn=2
else
wyn=0
endIf
f=wyn
end function
7. Procedura- przykład, chcemy wpisać same 0 do zaznaczonego obszaru
Sub wstaw()
Dim w as Byte
Dim w as Byte
for w=1 to 10
for k=1 to 3
cells (w,k).value=0
next k
next w
end Sub
**Run-F5
**wartości losowe rnd()*1000
**całkowite- int
**Jak zrobić żeby to było w kilku arkuszach:
na końcu dopisujemy
sub proc()
for i=1 to 10
Sheets.Add
wstaw
next i
end sub
Rejestrujemy makro/wstaw arkusz/zatrzymujemy makro i wstawiamy w procedurze
8. Sortowanie w wielu wierszach
Rejestrujemy wiersz
Dane/Sortuj
Sortujemy
Zatrzymujemy
przechodzimy do makra i dopisujemy pętlę
Sub sortuj()
dim w as Integer
for w=1 to 1000
Range(“B”& w & “.I” & w)…
next w
end sub
9. Funkcje tekstowe
Len(napis) -długość napisu
Left(napis,ile) - początkowe ile znaków napisu(kopiowanie od lewej)
Mid(napis,pocz,ile)-fragment napisu długości ile począwszy od znaku na pozycji pocz (wycięcie fragmentu z naisu)
right(napis,ile) - końcowe ile znaków napisu
UCase(napis) - zamiana na wielkie litery
LCase(napis) -zamiana na małe litery