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