Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.