Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podstawy programowania w VBA

Podobne prezentacje


Prezentacja na temat: "Podstawy programowania w VBA"— Zapis prezentacji:

1 Podstawy programowania w VBA
Microsoft Office Excel 2003

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

3 Opcje edytora VBA 3/20

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

5 Okienko Immediate Skrót Ctrl + G Sub procSub(arg) a = arg + arg
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 Excel Zeszyt1.xls Zeszyt2.xls … Arkusz1
Komórki A1, A2, …, IV65536 Workbook WorkSheet Application Range WorkSheet Range WorkSheets Workbook Workbooks WorkSheets Application.Workbooks(„Zeszyt1.xls”).WorkSheets(„Arkusz1”).Range(„A1”)

7 Objekty aktywne Wartosc = Application.Workbooks(„Zeszyt.xls”). _
7/20 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. _ oraz Arkusz1 jest aktualnie otwartym arkuszem Wartosc = Range(„A1”).Value Wartosc = ActiveSheet.Range(„A1”).Value Workbook Worksheet

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

9 Obiekt Range Istnieją 3 możliwości uzyskania objectu Range.
9/20 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

10 Obiekt Range I. Właściwość Range
10/20 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

11 Obiekt Range II. Właściwość Cells
11/20 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

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

13 Obiekt Range Odwołanie względne i bezwzględne
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” odwołanie bezwzględne WorkSheet odwołanie względne Range A B C 123 1 2 3 offset Odwołanie względem aktywnej komórki range cells Odwołanie względem komórki D6 abc

14 Procedury Sub i Function
14/20 Function procFunc(arg) procFunc = arg*2 End Function zm=5 zm = procFunc(zm) MsgBox zm Sub procSub(arg) arg = arg*2 End Sub zm=5 Call procSub(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)

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

16 Definiowanie typów danych
16/20 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

17 Instrukcje warunkowe i pętle
17/20 IF warunek Then Else If Else End IF For Each i in tab Next i For i=1 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 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

19 Właściwość Selection objektu Application
19/20 Areas(1) Selection Areas(2) obiekt Range Areas(3) Areas(4) Areas(5) 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

20 Wypełnianie tablicy wartościami 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 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 a1 b1 a2 b2 a6 b7 b4 c4 d4 d6 d7 d8 obszar PwOb PkOb iW iK rozm i i<=iW j J<=iK k TabStr


Pobierz ppt "Podstawy programowania w VBA"

Podobne prezentacje


Reklamy Google