Visual Basic w programie Microsoft Excel
Automatyzacja programu Microsoft Excel Excel, podobnie jak inne programy z pakietu Microsoft Office, posiada wbudowany język programowania umożliwiający automatyzację pracy z dokumentami Visual Basic for Applications (VBA) to uproszczona wersja języka Visual Basic autorstwa Microsoftu, stworzona z myślą o zwiększeniu komfortu pracy z programami tej firmy
Zalety automatyzacji dokumentów zwiększenie funkcjonalności aplikacji MS Office ujednolicenie generowanych dokumentów skrócenie czasu przygotowania dokumentów możliwość przetwarzania danych w ilościach niemożliwych do przetworzenia ręcznie odciążenie pracowników od żmudnych i jednostajnych zadań
Możliwości języka Visual Basic for Applications wszystkie funkcje dostępne dla użytkownika aplikacji mogą być wywoływane przez skrypty VBA za pomocą skryptów możemy m.in. wprowadzać tekst, wartości i formuły do obliczeń, formatować dokumenty, tworzyć wykresy i tabele, wyszukiwać dane czy rysować schematy
Zastosowanie VBA gdy prace wykonywane na dokumentach są powtarzalne (jeśli dokument, który tworzymy, jest kolejnym dokumentem tego samego typu, a różni się tylko danymi) przy dokumentach, które wymagają przeanalizowania dużej ilości danych (co mogłoby być czasochłonne przy ręcznej analizie)
Początek pracy
Przykładowy program Program wstawia do komórek z zakresu "A1:A10" kwadraty kolejnych liczb naturalnych (od 1 do 10).
Składnia języka VBA język VBA posiada wszystkie cechy charakterystyczne dla innych języków programowania składnia języka umożliwia nam tworzenie pętli, instrukcji warunkowych, zmiennych, stałych, funkcji etc.
Deklaracja zmiennych Dim nazwa_zmiennej As Typ Zmiennej Dim x As Integer Dim y As String
Operatory arytmetyczne ^ potęgowanie - negacja \ dzielenie całkowite Mod modulo (reszta z dzielenia)
Operatory porównania = równości <> różności
Operatory logiczne Not negacji And iloczynu logicznego, koniunkcji Or sumy logicznej, alternatywy Xor wyłączenia
Instrukcja If Else If condition Then [statement] [Else elseStatement]
Pętla For Next For counter = start To end [statements] Next [counter]
Pętla Do While/Until Do [statements] Loop [{While | Until} condition]
Standardowa struktura instrukcji VBA Worksheets("nazwaArkusza").nazwaObiektu(parametry) = x Worksheets("Arkusz1").Cells(2,1) = "Przykładowy tekst" Skrócona wersja (odnosząca się do bieżącego arkusza) Cells(2,1) = "Przykładowy tekst"
Obiekty obiekt Application - reprezentuje całą aplikację Microsoft Excel najważniejsze obiekty składowe Application - ActiveCell, ActiveChart, ActivePrinter, ActiveSheet, ActiveWindow, ActiveWorkbook, Calculate, Cells, Charts, Columns, CommandBars, Evaluate, Names, Rows, ThisWorkbook, Windows, Workbooks, Worksheets
Właściwości i metody Application oprócz obiektów składowych, można odwoływać się również do metod i właściwości obiektu Application przykłady metod i właściwości - DisplayAlerts (czy ostrzegawcze komunikaty są pokazywane), DisplayCommentIndicator (w jaki sposób są pokazywane obecność komentarzy), DisplayFormulaBar (czy pasek formuły jest wyświetlany), Quit (zakończenie pracy aplikacji) Application.DisplayFormulaBar = True
Zdarzenia podobnie jak w innych językach programowania, tak i w VBA można skojarzyć wykonanie instrukcji z danym zdarzeniem wywołanym przez użytkownika przykładowe zdarzenia - OnKey (skojarzenie procedury z naciśnięciem określonego klawisza), OnTime (ustawienie polecenia wykonania procedury w określonym momencie lub po określonym czasie) Application.OnKey "+^{RIGHT}", "testowaProcedura" (skrót klawiszowy Shift + Ctrl + -> wywoła procedurę o nazwie testowaProcedura)
Obiekt Workbook reprezentuje otwarty skoroszyt Excela przykładowe właściwości i metody - Activate (uaktywnienie skoroszytu), Save (zapisanie pliku), Close (zamknięcie skoroszytu), Name (nazwa), Path (ścieżka dostępu do pliku skoroszytu) Workbook.Close SaveChanges:=False (zamknięcie skoroszytu bez zapisywania zmian)
Zadania Napisz program, który będzie wykonywał odliczanie od 1 do 10, po czym wyświetli komunikat "koniec odliczania". Napisz program, który wprowadzi do komórek od A1 do A20 kolejne liczby od 1 do 20.
Zadanie 1
Zadanie 2