Podstawy programowania w VBA - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Podstawy programowania w VBA

Description:

Podstawy programowania w VBA Microsoft Office Excel 2003 Edytor VBA Skr t Alt+F11 */20 Opcje edytora VBA */20 Najwa niejsze opcje edytora VBA Auto List Members Auto ... – PowerPoint PPT presentation

Number of Views:321
Avg rating:3.0/5.0
Slides: 21
Provided by: wmPolitec
Category:

less

Transcript and Presenter's Notes

Title: Podstawy programowania w VBA


1
Podstawy programowania w VBA
  • Microsoft Office Excel 2003

2
Edytor VBA
2/20
  • Skrót AltF11

3
Opcje edytora VBA
3/20
4
Najwazniejsze opcje edytora VBA
4/20
  • Auto List Members
  • Auto Syntax Check

?
  • Auto Quick Info
  • Auto Syntax Check

! Zaznaczenie opcji dziala od nowo otwartego
modulu
  • Auto Data Tips

5
Okienko Immediate
5/20
  • Skrót Ctrl G

Sub procSub(arg) a arg arg Debug.Print
a End Sub Function procFunc(arg) procFunc
arg arg End Function
6
Hierarchia obiektów
6/20
Komórki A1, A2, , IV65536 Komórki A1, A2, ,
IV65536
Excel
Zeszyt1.xls Zeszyt2.xls
Arkusz1 Arkusz2 Arkusz1 Arkusz2
WorkSheet
Workbook
Range
Application
WorkSheet
Range
WorkSheets
Workbook
WorkSheets
Workbooks
Application.Workbooks(Zeszyt1.xls).WorkSheets(A
rkusz1).Range(A1)
7
Objekty aktywne
7/20
  • Wartosc Application.Workbooks(Zeszyt.xls). _
  • Worksheets(Arkusz1).Range(A1).Value
  • Jezeli Zeszyt.xls jest aktualnie otwartym
    dokumentem
  • Wartosc Worksheets(Arkusz1).Range(A1).Value
  • Wartosc ActiveWorkbook. _
  • Worksheets(Arkusz1).Range(A1).Value
  • oraz Arkusz1 jest aktualnie otwartym arkuszem
  • Wartosc Range(A1).Value
  • Wartosc ActiveSheet.Range(A1).Value

Workbook
Worksheet
8
Okreslenie argumentów dla metod i wlasciwosci
8/20
Object.Protect(Password,Structure,Windows)
ActiveWorkbook.Protect abc, True,
False ActiveWorkbook.Protect , True,
False ActiveWorkbook.Protect StructureTrue
  • Gdy metody i wlasciwosci zwracaja wartosc
  • adres ActiveCell.Adress(False, True)
  • adres ActiveCell.Adress(ColumnAbsoluteTrue)

Object.Adress(RowAbsolute,ColumnAbsolute) As
String
9
Obiekt Range
9/20
  • Istnieja 3 mozliwosci uzyskania objectu Range.
  • Wlasciwosc Range obiektu Worksheet lub obiektu
    klasy Range
  • Wlasciwosc Cells obiektu Worksheet lub obiektu
    klasy Range
  • Wlasciwosc Offset obiektu Range
  • Odwolanie do komórki moze byc
  • bezwzgledne
  • wzgledne

10
Obiekt Range I. Wlasciwosc Range
10/20
  • Wlasciwosc Range zwraca obiekt Range
  • obiekt.Range(komórka1)
  • objekt.Range(komórka1,komórka2)
  • Wlasciwosc Range obiektu Worksheet (przyklady)
  • ActiveSheet.Range(A1).Value1
  • ActiveSheet.Range(A3B5).Value2
  • ActiveSheet.Range(A3,B5).Value3
  • ActiveSheet.Range(C1,E3,F2).Value4
  • Wlasciwosc Range obiektu Range (przyklad)
    ActiveCell.Range(B2) 5 odwolanie wzgledne

11
Obiekt Range II. Wlasciwosc Cells
11/20
  • Wlasciwosc Cells zwraca obiekt Range
  • obiekt.Cells(idRow,idColumn)
  • obiekt.Cells(idRow)
  • obiekt.Cells
  • Wlasciwosc Cells obiektu Worksheet (przyklady)
  • ActiveSheet.Cells(1,1).Value1
  • ActiveSheet.Cells(520).Value2
  • ActiveSheet.Cells.ClearContents
  • Wlasciwosc Cells obiektu Range (przyklady)
  • ActiveCell.Cells(3,2).Value3 odwolanie
    wzgledne
  • Range(B1C10).Cells(5).Value4 odwolanie
    wzgledne

12
Obiekt Range III. Wlasciwosc Offset
12/20
  • Wlasciwosc Offset zwraca objekt Range
  • obiekt.Offset(idRow, idColumn)
  • Wlasciwosc Offset obiektu Range
  • ActiveCell.Offset(0,0).Value3 odwolanie
    wzgledne
  • ActiveCell.Offset(-1,2).Value3 odwolanie
    wzgledne

13
Obiekt Range Odwolanie wzgledne i bezwzgledne
13/20
ActiveSheet.Range(A7).Value
abc WorkSheets(Ark1).Cells(1,1).Value 123
ActiveCell.Range(A3).Value range Range(D6)
.Cells(1,1).Value cells ActiveCell.Offset(0,0
).Value offset
odwolanie bezwzgledne
WorkSheet
odwolanie wzgledne
Range
A
B
C
123
1 2 3
offset
Odwolanie wzgledem aktywnej komórki
range
cells
Odwolanie wzgledem komórki D6
abc
14
Procedury Sub i Function
14/20
Function procFunc(arg) procFunc arg2 End
Function zm5 zm procFunc(zm) MsgBox zm
Sub procSub(arg) arg arg2 End Sub zm5 Call
procSub(zm) MsgBox zm
  • zwraca wartosc (wartosc zwracana nazywa sie tak
    samo jak funkcja)
  • argumenty przekazywane sa przez wartosc
  • dodaje sie do funkcji uzytkownika (dostepne z
    poziomu formuly)
  • nie zwraca wartosci
  • wymaga slowa kluczowego call do wywolania
    procedury
  • Argumenty przekazywane sa przez referencje

15
Procedury Sub
15/20
Sub procSub(arg) arg arg2 End Sub Sub
procSubMain() zm 5 MsgBox zm Call
procSub(zm) MsgBox zm End Sub
Sub procSub(byVal arg) arg arg2 End Sub Sub
procSubMain() zm 5 MsgBox zm Call
procSub(zm) MsgBox zm End Sub
16
Definiowanie typów danych
16/20
Dim zm1 As Intiger Dim zm2 As Double Dim zm3 As
String4 Dim zm4 As String zm1 10 zm2
10,67 zm3 abcd zm4 abcd zm5 10 zm6
10,67 zm7 abcd
liczba calkowita liczba rzeczywista lancuch
znaków (stala dlugosc) lancuch znaków (zmienna
dlugosc) typ Intiger 2 bajty typ Double 8
bajtów typ String 4 bajty typ String 14
bajtów typ Variant 16 bajtów typ Variant 16
bajtów typ Variant 26 bajtów
17
Instrukcje warunkowe i petle
17/20
IF warunek Then Else If Else End IF
For Each i in tab Next i
For i1 To 5 Next i
Select Case opcja Case 1 Case 2 Case
Else End Select
Do While warunek Loop
Do Loop While warunek
18
Tablice
18/20
  • Deklarowanie tablicy o 5 elementach typu
    calkowitego
  • Dim tablicaInt(5) As Integer
  • Deklarowanie tablicy dynamicznej typu tekstowego
  • Dim tablicaStr() As String
  • Nadanie rozmiaru tablicy
  • n5
  • ReDim tablicaStr(1 To n)
  • Przypisanie wartosci pierwszemu elementowi
    tablicy
  • tablicaStr(1) abcdef
  • Wykorzystanie petli for do wypelnienia tablicy
  • For i1 To n
  • tablicaStr(i) abcdef
  • Next i

19
Wlasciwosc Selection objektu Application
19/20
Areas(1)
Selection
Areas(2)
obiekt Range
Areas(3)
Areas(4)
Areas(5)
Lob Selection.Areas.Count Lob5 Lkom
Selection.Areas(1).Count Lkom4 w
Selection.Areas(1).Row w1 k
Selection.Areas(1).Column k1 Lw
Selection.Areas(1).Rows.Count Lw2 Lk
Selection.Areas(1).Columns.Count Lk 2
20
Wypelnianie tablicy wartosciami z zaznaczonych
komórek arkusza
20/20
Sub Wypelnij() Dim TabStr() As String If
TypeName(Selection) "Range" Then k 1
For Each obszar In Selection.Areas PwOb
obszar.Row PkOb obszar.Column iW
obszar.Rows.Count iK obszar.Columns.Count rozm
iar k - 1 iW iK ReDim Preserve
TabStr(rozmiar) For i PwOb To PwOb iW - 1
For j PkOb To PkOb iK - 1
TabStr(k) Cells(i, j).Value k
k 1 Next j Next i
Next obszar End If End Sub
obszar PwOb PkOb iW iK rozm i iltiW j JltiK k TabStr
Write a Comment
User Comments (0)
About PowerShow.com