Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podstawy programowania w VBA Microsoft Office Excel 2003.

Podobne prezentacje


Prezentacja na temat: "Podstawy programowania w VBA Microsoft Office Excel 2003."— Zapis prezentacji:

1 Podstawy programowania w VBA Microsoft Office Excel 2003

2 Edytor VBA Skrót Alt+F11 2/20

3 Opcje edytora VBA 3/20

4 Najważniejsze opcje edytora VBA Auto List Members Auto Quick Info Auto Data Tips Auto Syntax Check Auto Syntax Check ! Zaznaczenie opcji działa od nowo otwartego modułu 4/20

5 Okienko Immediate Skrót Ctrl + G Sub procSub(arg) a = arg + arg Debug.Print a End Sub Function procFunc(arg) procFunc = arg + arg End Function 5/20

6 Hierarchia obiektów Excel Zeszyt1.xls Zeszyt2.xls … Arkusz1 Arkusz2 … Arkusz1 Arkusz2 … Komórki A1, A2, …, IV65536 Application Workbooks Range WorkSheets Workbook WorkSheet Application.Workbooks(Zeszyt1.xls).WorkSheets(Arkusz1).Range(A1) 6/20

7 Objekty aktywne Wartosc = Application.Workbooks(Zeszyt.xls). _ Worksheets(Arkusz1).Range(A1).Value Jeżeli 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 7/20

8 Określenie argumentów dla metod i właściwości Gdy metody i właściwości zwracają wartość adres = ActiveCell.Adress(False, True); adres = ActiveCell.Adress(ColumnAbsolute:=True); Object.Protect([Password],[Structure],[Windows]) Object.Adress([RowAbsolute],[ColumnAbsolute]…) As String ActiveWorkbook.Protect abc, True, False ActiveWorkbook.Protect, True, False ActiveWorkbook.Protect Structure:=True 8/20

9 Obiekt Range Istnieją 3 możliwości uzyskania objectu Range. Właściwość Range obiektu Worksheet lub obiektu klasy Range Właściwość Cells obiektu Worksheet lub obiektu klasy Range Właściwość Offset obiektu Range Odwołanie do komórki może być bezwzględne względne 9/20

10 Obiekt Range I. Właściwość Range Właściwość Range zwraca obiekt Range obiekt.Range(komórka1) objekt.Range(komórka1,komórka2) Właściwość Range obiektu Worksheet (przykłady) ActiveSheet.Range(A1).Value=1 ActiveSheet.Range(A3:B5).Value=2 ActiveSheet.Range(A3,B5).Value=3 ActiveSheet.Range(C1,E3,F2).Value=4 Właściwość Range obiektu Range (przykład) ActiveCell.Range(B2) = 5 odwołanie względne 10/20

11 Obiekt Range II. Właściwość Cells Właściwość Cells zwraca obiekt Range obiekt.Cells(idRow,idColumn) obiekt.Cells(idRow) obiekt.Cells Właściwość Cells obiektu Worksheet (przykłady) ActiveSheet.Cells(1,1).Value=1 ActiveSheet.Cells(520).Value=2 ActiveSheet.Cells.ClearContents Właściwość Cells obiektu Range (przykłady) ActiveCell.Cells(3,2).Value=3 odwołanie względne Range(B1:C10).Cells(5).Value=4 odwołanie względne 11/20

12 Obiekt Range III. Właściwość Offset Właściwość Offset zwraca objekt Range obiekt.Offset(idRow, idColumn) Właściwość Offset obiektu Range ActiveCell.Offset(0,0).Value=3odwołanie względne ActiveCell.Offset(-1,2).Value=3odwołanie względne 12/20

13 Obiekt Range Odwołanie względne i bezwzględne 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 range 123 A BC Odwołanie względem komórki D6 abc cells offset odwołanie względne odwołanie bezwzględne WorkSheet Range Odwołanie względem aktywnej komórki 13/20

14 Procedury Sub i Function Sub procSub(arg) arg = arg*2 End Sub zm=5 Call procSub(zm) MsgBox zm Function procFunc(arg) procFunc = arg*2 End Function zm=5 zm = procFunc(zm) MsgBox zm nie zwraca wartości wymaga słowa kluczowego call do wywołania procedury Argumenty przekazywane są przez referencję zwraca wartość (wartość zwracana nazywa się tak samo jak funkcja) argumenty przekazywane są przez wartość dodaje się do funkcji użytkownika (dostępne z poziomu formuły) 14/20

15 Procedury Sub Sub procSub(arg) arg = arg*2 End Sub Sub procSubMain() zm = 5 MsgBox zm Call procSub(zm) MsgBox zm End Sub Sub procSub(byVal arg) arg = arg*2 End Sub Sub procSubMain() zm = 5 MsgBox zm Call procSub(zm) MsgBox zm End Sub 15/20

16 Definiowanie typów danych Dim zm1 As Intiger Dim zm2 As Double Dim zm3 As String*4 Dim zm4 As String zm1 = 10 zm2 = 10,67 zm3 = abcd zm4 = abcd zm5 = 10 zm6 = 10,67 zm7 = abcd liczba całkowita liczba rzeczywista łańcuch znaków (stała długość) łańcuch znaków (zmienna długość) 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; 26 bajtów 16/20

17 Instrukcje warunkowe i pętle IF warunek Then … Else If … Else … End IF For i=1 To 5 … Next i For Each i in tab … Next i Select Case opcja Case 1 … Case 2 … Case Else … End Select Do While warunek … Loop Do … Loop While warunek 17/20

18 Tablice Deklarowanie tablicy o 5 elementach typu całkowitego Dim tablicaInt(5) As Integer Deklarowanie tablicy dynamicznej typu tekstowego Dim tablicaStr() As String Nadanie rozmiaru tablicy n=5 ReDim tablicaStr(1 To n) Przypisanie wartości pierwszemu elementowi tablicy tablicaStr(1)= abcdef Wykorzystanie pętli for do wypełnienia tablicy For i=1 To n tablicaStr(i) = abcdef Next i 18/20

19 Właściwość Selection objektu Application Lob = Selection.Areas.Count Lob=5 Lkom = Selection.Areas(1).Count Lkom=4 w = Selection.Areas(1).Row w=1 k = Selection.Areas(1).Column k=1 Lw = Selection.Areas(1).Rows.Count Lw=2 Lk = Selection.Areas(1).Columns.Count Lk = 2 Selection Areas(1) Areas(2) Areas(3) Areas(4) Areas(5) obiekt Range 19/20

20 Wypełnianie tablicy wartościami z zaznaczonych komórek arkusza 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 rozmiar = k 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 20/20 a1 b1 a2b2 a6 b7 b4c4d4 d6 d7 d8 obszarPwObPkObiWiKrozmii<=iWjJ<=iKkTabStr


Pobierz ppt "Podstawy programowania w VBA Microsoft Office Excel 2003."

Podobne prezentacje


Reklamy Google