VBA – ZAJĘCIA NR 4!

Transkrypt

VBA – ZAJĘCIA NR 4!
Szybkie podsumowanie:
VBA1 – wstęp, rejestracja… korzystanie z funkcji do dekodowania
VBA2 – dekodowanie makrem, pierwszy UF
VBA3 – porządny UF, makra z parametrami
VBA4 – robienie dodatków, korzystanie z Analisys ToolPak, kolekcje
VBA5 – Zadania na pętle, metody i kolekcje
VBA – ZAJĘCIA NR 5!
Dariusz Aksamit
Wydział Fizyki Politechniki Warszawskiej
Przedmiot „Programowanie w języku Visual Basic for Application” (VBA)
Semestr zimowy 2016/2017
Opiekun przedmiotu: dr inż. Daniel Kikoła
VBA – Pętle, konstrukcje, metody
1. Przydatne metody
2. Pętle For… Next i Do While… Loop
3. Konstrukcje For Each… Next, With…
Parę metod, które warto znać
.Offset(Row,Column)
Range("A1").Offset(3, 0).Value
ActiveCell.Offset(i).Value = i
Parę metod, które warto znać
Timer
StartTime = Timer
[kod]
EndTime = Timer
MsgBox „Czas wykonania makra: ” & EndTime - StartTime
Parę metod, które warto znać
.Interior
ActiveCell.Interior.Color = RGB(200, 0, 0)
Parę metod, które warto znać
.CountA(range)
WorksheetFunction.CountA(Range("A:A"))
Parę metod, które warto znać
Cells.
Cells.Clear
Cells(5,2).Select
Columns.
/Rows.
Columns.AutoFit /Rows.AutoFit
Parę metod, które warto znać
Sheets.
Sheets.Count
Sheets(3).Name
Parę metod, które warto znać
.Parent
Cells(1, 1).Value = ActiveSheet.Name
Cells(2, 1).Value = ActiveSheet.Parent.Name
Cells(3, 1).Value = ActiveSheet.Parent.Parent.Name
For licznik=wartość początkowa To wartość końcowa [Step wartość kroku]
[instrukcje]
Next licznik
For Each c In Range("A1:A5").Cells
c.Value = 5
Next c
For Each element In ActiveWorkbook.Worksheets
Cells(1, 1).Offset(i, 0).Value = element.Name
i=i+1
Next element
ZADANIA!
1. Wygenerować pionową kolumnę liczb o długości n
a. Kolejnych
b. Parzystych
c. Kolejnych, co drugą komórkę
ZADANIA!
1. Wygenerować pionową kolumnę liczb o długości n
a. Kolejnych
b. Parzystych
c. Kolejnych, co drugą komórkę
2. Wygenerować macierz trójkątną
a. O dowolnym rozmiarze (z palca)
b. O rozmiarze zmienianym przyciskiem (Deweloper->Wstaw->Kontrolki
ActiveX, tryb projektowania + dwa razy kliknąć)
ZADANIA!
1. Wygenerować pionową kolumnę liczb o długości n
a. Kolejnych
b. Parzystych
c. Kolejnych, co drugą komórkę
2. Wygenerować macierz trójkątną
a. O dowolnym rozmiarze (z palca)
b. O rozmiarze zmienianym przyciskiem (Deweloper->Wstaw->Kontrolki
ActiveX, tryb projektowania + dwa razy kliknąć)
3. Wypisać w kolejnych komórkach nazwy wszystkich zakładek
a. Z informacją w komórce obok czy są ukryte czy nie
ZADANIA!
1. Wygenerować pionową kolumnę liczb o długości n
a. Kolejnych
b. Parzystych
c. Kolejnych, co drugą komórkę
2. Wygenerować macierz trójkątną
a. O dowolnym rozmiarze (z palca)
b. O rozmiarze zmienianym przyciskiem (Deweloper->Wstaw->Kontrolki
ActiveX, tryb projektowania + dwa razy kliknąć)
3. Wypisać w kolejnych komórkach nazwy wszystkich zakładek
a. Z informacją w komórce obok czy są ukryte czy nie
4. Sprawdzić co zwracają kolejne .parent.parent od ActiveSheet
5. Zrobić tęczę:)
Skończone?
Sub tecza_Click()
Dim n As Integer
n=0
Do While n < 20
ActiveCell.Offset(n, 0).Interior.Color = RGB(n * 10, 100, 100)
n=n+1
Loop
End Sub
Sub WypisanieNazwZakladek()
Dim i As Integer
i=0
For Each element In ActiveWorkbook.Worksheets
Cells(1, 1).Offset(i, 0).Value = element.Name
i=i+1
Next element
End Sub