1 / 59

Obiekty w VBA

Obiekty w VBA. Czym jest obiekt? jest „przedmiotem” kontrolowanym przez VB, obiektem jest arkusz, wykres, pasek narzędzi, przycisk, Excel ma ponad 100 obiektów. Obiekty organizowane są w hierarchii niektóre z nich zawierają w sobie inne obiekty,

tal
Download Presentation

Obiekty w VBA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Obiekty w VBA Czym jest obiekt? • jest „przedmiotem” kontrolowanym przez VB, • obiektem jest arkusz, wykres, pasek narzędzi, przycisk, • Excel ma ponad 100 obiektów. Obiekty organizowane są w hierarchii • niektóre z nich zawierają w sobie inne obiekty, • np. sam Excel stanowi obiekt zwany aplikacją, zaś obiekt aplikacja zawiera w sobie obiekty takie jak: arkusz, paski narzędzi itd.

  2. Kolekcje • niektóre obiekty są do siebie podobne, np. arkusze w skoroszycie, • kolekcja to zbiór danych obiektów, • kolekcje są również obiektami, • najczęściej używane kolekcje obiektów Excela: • kolekcja Sheets (zawiera arkusze i wykresy), • kolekcja Workbooks, • kolekcja Worksheets, • kolekcja Windows. Elementy programowania

  3. Właściwości obiektów • właściwości – to zbiór cech, które opisują obiekt i czynią go użytecznym, np. obiekt Workbookma własność Name, a obiekt Range: Name, Row, Font itd. • właściwość w danej chwili może przyjmować tylko jedną wartość, • ustawiane mogą być w oknie Właściwości lub bezpośrednio w kodzie zdarzeń, • niektóre właściwości są również obiektami, np. dla obiektu Range – można zmienić wygląd wybranego zakresu komórek przez zmianę własności Font, jednak Font może mieć różne nazwy, rozmiary itd. (cechy te są właściwościami czcionki); ponieważ Font ma właściwości – musi być obiektem!

  4. Metody • każdemu obiektowi przypisano odpowiedni zbiór metod, • własności zmieniają wygląd obiektu, natomiast za pomocą metod możliwe jest wykonanie określonych czynności, • mogą mieć opcjonalne parametry, które określają w jaki sposób metoda ma być wykonana, Elementy programowania

  5. Przykład metody Obiekt Range posiada metody: • wymazujące zawartość komórki: ClearConntents, • wymazujące format komórki: ClearFormats, • lub wymazujące wszystko (format i zawartość): Clear, Elementy programowania

  6. Jak wyszukiwać obiekty? Aby łatwiej zrozumieć hierarchię obiektów np. Excela, korzystamy z diagramu obiektów w Pomocy Visual Basica Elementy programowania

  7. Range Worksheet.Range Workbook.Worksheet.Range Application.Workbook.Worksheet.Range

  8. obiekt właściwość obiekt właściwość ActiveCell.Offset(3,2) Range(„A4”).Value argumenty Składnia i gramatyka zasada 1: Odwoływanie się do właściwości obiektu Elementy programowania

  9. wartość obiekt właściwość Range(„A4”).Value = 25 Składnia i gramatyka zasada 2: Zmiana wartości danej własności obiektu na inną Range(„A4”).Value = 25 ActiveCell.Font.Name = „Dzień Dobry” ActiveCell.Font.Bold = True Elementy programowania

  10. obiekt właściwość zmienna Granica = Range(„A4”).Value Składnia i gramatyka zasada 3: Odczytywanie bieżącej wartości danej właściwości obiektu Elementy programowania

  11. obiekt metoda Range(„A4”).ClearContents Składnia i gramatyka zasada 4: Odwoływanie się do metody danego obiektu Elementy programowania

  12. Operacje związane z komórkami • jak je zaznaczać? • jak wpisywać dane do komórek? • jak nadać im nazwy? • jak się formatuje? przesuwa? kopiuje? • wymazuje? Elementy programowania

  13. Obiekt: RANGE • odwołanie do pojedynczej komórki lub zakresu komórek, • Range jest obiektem obiektu Worksheet, • dostęp do obiektu Range umożliwiają trzy własności: • Range, • Cells, • Offset. Elementy programowania

  14. Właściwość Range • zwraca komórkę lub zakres komórek, • odwołanie należy podać w stylu A1 i w cudzysłowie:

  15. Właściwość Cells • wymaga zazwyczaj dwóch argumentów • Argument 1: wskazuje numer wiersza • Argument 2: wskazuje numer kolumny

  16. Arkusz jako kolekcja komórek Elementy programowania

  17. Właściwość Offset w zaznaczaniu komórek • jest to inny sposób odwoływania się do komórek, • nie zawsze wiemy gdzie aktualnie się znajdujemy na arkuszu, • właściwość Offset oblicza nowy zakres komórek przesuwając zakres początkowy o określoną liczbę wierszy (kolumn) w górę lub dół (w prawo, lewo), • zwraca obiekt Rangeadresowany względem lewego górnego narożnika bieżącego obiektu Range, Elementy programowania

  18. Elementy programowania

  19. Inne metody wybierania komórek Elementy programowania

  20. Zaznaczanie wierszy i kolumn Elementy programowania

  21. Uzyskiwanie informacji o arkuszu Elementy programowania

  22. Wpisywanie danych w arkuszu Dane wpisywane w arkuszu można ująć w trzy podstawowe kategorie: • liczby, • teksty, • wzory, ActiveSheet.Range(„D3”).Formula = 123 Range(„A1”).Formula = „Stan Konta” Range(„A2:B4”).Formula = 12*3 Range(„A3”).Formula = „=B5*12” Elementy programowania

  23. Przesuwanie, kopiowanie, wymazywanie komórek metody: Cut, Copy, Clear metoda Clear:ClearContents, ClearFormats, ClearNotes Elementy programowania

  24. Manipulowanie skoroszytami

  25. Manipulowanie arkuszami

  26. Operowanie oknami – metoda ARRANGE Elementy programowania

  27. Przykład kodu Windows.Arrange ArrangeStyle:=xlArrangeStyleCascade lub Windows.Arrange ArrangeStyle:=7 Elementy programowania

  28. Zarządzanie aplikacją Excela Elementy programowania

  29. Pomocne polecenia: Jak wybrać….? ...pojedynczą komórkę (na przykładzie A1)(5 różnych sposobów) Range("A1").Select            Cells(1).Select           Cells.Item(1).Select          Cels(1,1).Select         Cells(1,"A").Select Elementy programowania

  30. Jak wybrać….? • ...zakres komórek (2 sposoby)      Range("A1:A5").Select      Range(Cells(1,1),Cells(5,1)).Select • ...kilka komórek (różnych)      Range("A1","A5","Z320").Select • ...kilka zakresów komórek (różnych)      Range("A1:A5","A15:D15","Z320").Select Elementy programowania

  31. Jak wybrać….? • ...komórkę aktywną            Application.ActiveCell • ...komórkę przesuniętą o 2 wiersze i 1 kolumnę od komórki aktywnej            Activecell.Offset(2,1).Activate • ...komórkę przesuniętą o 2 wiersze i 1 kolumnę od komórki A2 (2 różne sposoby)          Range("A2").Offset(2, 1).Activate     Cells(2, 1).Offset(2, 1).Activate Elementy programowania

  32. Jak wybrać….? • ...pierwszy arkusz w aktywnym skoroszycie            Sheets(1).Activate • ...arkusz o nazwie "Arkusz1"            Sheets("Arkusz1").Activate • ...spośród otwartych zeszytów skoroszyt o nazwie "Zeszyt1"            Windows("Zeszyt1").Activate Elementy programowania

  33. Jak wybrać….? • ...wiersz z aktywną komórką (2 różne sposoby):            Selection.EntireRow.Select            ActiveCell.EntireRow.Select • ...kolumnę z aktywną komórką (2 różne sposoby):            Selection.EntireColumn.Select            ActiveCell.EntireColumn.Select • ...kilka kolumn w ciągłym obszarze            Columns("A:C").Select • ...kilka wierszy w ciągłym obszarze            Rows("1:5").Select Elementy programowania

  34. Jak wybrać….? • ...kilka kolumn w nieciągłym obszarze            Columns("A:C","E:E").Select • ...kilka wierszy w nieciągłym obszarze            Rows("1:5","6:6").Select • ...ostatnią komórkę w danym wierszu            ActiveCell.End(xlRight).Select • ...ostatnią komórkę w danej kolumnie            ActiveCell.End(xlDown).Select • ...pierwszą komórkę w danym wierszu            ActiveCell.End(xlLeft).Select • ...pierwszą komórkę w danej kolumnie            ActiveCell.End(xlUp).Select

  35. Jak wyświetlić? • ...zawartość komórki  (na przykładzie A1) Range("A1").Value             Cells(1).Value             Cells.Item(1).Value             Cels(1,1).Value             Cells(1,"A").Value • ...formułę z  komórki  (na przykładzie A1)    Range("A1").Formula             Cells(1).Formula             Cells.Item(1).Formula             Cels(1,1).Formula             Cells(1,"A").Formula Elementy programowania

  36. Jak wyświetlić? • ...własny tekst w tytule zamiast Microsoft Excel Application.Caption="to tu wstawiamy..." • ...własny tekst w linii statusu Application.StatusBar="to tu wstawiamy..." Elementy programowania

  37. Jak wstawić? • ...własny tekst w komórce (na przykładzie A1)Range("A1").Formula = "mój tekst"            Cells(1).Formula ="mój tekst"            Cells.Item(1).Formula ="mój tekst"            Cels(1,1).Formula ="mój tekst"            Cells(1,"A").Formula ="mój tekst"Range("A1").Value = "mój tekst"            Cells(1).Value ="mój tekst"            Cells.Item(1).Value ="mój tekst"            Cels(1,1).Value ="mój tekst"            Cells(1,"A").Value ="mój tekst" Elementy programowania

  38. Jak wstawić? •    ...liczbę (na przykładzie A1)            Range("A1").Formula = 13            Cells(1).Formula =13            Cells.Item(1).Formula =13            Cels(1,1).Formula =13            Cells(1,"A").Formula =13Range("A1").Value = 13            Cells(1).Value =13            Cells.Item(1).Value =13            Cels(1,1).Value =13            Cells(1,"A").Value =13 Elementy programowania

  39. Jak wstawić? • ...formułę =B1+C4 do komórki A1            Range("A1").Formula = "=B1+C4"            Cells(1).Formula = "=B1+C4"            Cells.Item(1).Formula = "=B1+C4"            Cels(1,1).Formula = "=B1+C4"            Cells(1,"A").Formula = "=B1+C4" • ...format komórki w postaci np. ##.##0Range("A1").NumberFormat = "##.##0" Elementy programowania

  40. Typy błędów programu W programie utworzonym w Visual Basic mogą zdarzyć się trzy typy błędów: • błędy kompilacji (składni), • błędy podczas działania programu, • błędy logiczne. Elementy programowania

  41. Błędy kompilacji (składni) Błędy kompilacji to pomyłka programisty, która łamie zasady składni (błędne napisanie własności lub słowa kluczowego). Visual Basic zwraca uwagę na kilka typów składni w programach; nie pozwoli na uruchomienie programu, dopóki nie zostaną poprawione wszystkie błędy składni. Jeżeli opcja Auto Syntax Check (na stronie Editor okienka dialogowego Options) jest zaznaczona, błędy składniowe są wykrywane podczas wpisywania. W przeciwnym wypadku są wykrywane, podczas kompilacji projektu. Przykłady instrukcji, które mogą spowodować błędy kompilacji: Prnt "Hello!"  - niepoprawne słowo kluczowe (Prnt zamiast Print).Print ?Hello!" - niepoprawna interpunkcja (? zamiast ").If X=1 doSomething  - niepoprawna struktura (przed doSomething powinno wystąpić Then).

  42. Błąd podczas działania programu Błąd podczas działania programu to błąd, który powoduje nieoczekiwane zatrzymanie działania programu. Takie błędy powstają, gdy zewnętrzne zdarzenie lub nie wykryty błąd składni zmusza program do zatrzymania swojego działania. Pomyłka w pisowni nazwy lub np. stacja dyskietek nie zawierająca dyskietki są przyczynami, które mogą powodować błędy podczas działania programu. Kiedy pojawi się błąd podczas wykonania programu, zatrzymane jest wykonywanie programu, chyba że procedura, w której pojawił się błąd, będzie zawierała poprawny kod obsługi błędu. Elementy programowania

  43. Błąd logiczny Błąd logiczny to błąd człowieka - pomyłka programisty, która powoduje, że kod programu generuje złe wyniki. Większość wysiłków przy usuwaniu błędów koncentruje się na znajdywaniu błędów logicznych wprowadzonych przez programistę. Błędy te są często trudniejsze do zlokalizowania i poprawienia. Elementy programowania

  44. Sposoby wykrywania błędów Visual Basic zapewnia szeroki asortyment narzędzi do wykrywania błędów i cech, które pomagają zlokalizować i poprawić błędy w kodzie: • sprawdzanie błędów składni, • tryb przerwania/edycji i kontynuacji, • wyrażenia Watch, • punkty przerwania, • wykonywanie krokowe, • wywołania. Elementy programowania

  45. Sprawdzanie błędów składni Sprawdzanie błędów składni kontroluje kod pod względem błędów składniowych podczas wpisywania, uruchamiania i kompilowania projektu. Jeżeli pojawi się błąd, zostanie podświetlone potencjalne źródło błędu i wyświetlony komunikat opisujący błąd. Aby włączyć sprawdzanie błędów składniowych należy: wybrać menu Tools Options i na zakładce Edit zaznaczyć opcję Auto Syntax Check. Elementy programowania

  46. Tryb przerwania/edycji i kontynuacji Tryb przerwania zatrzymuje uruchomioną aplikację, ale pozostawia jej bieżące zmienne i ustawienia właściwości. Jest jakby zaprezentowaniem stanu programu w określonej chwili podczas jego działania. W trybie przerwania można zbadać i zmienić bieżące wartości i właściwości, wprowadzić znaczne modyfikacje kodu i określić, jakie instrukcje aplikacji będą uruchomione jako następne. Po zakończeniu edycji, można kontynuować uruchomienie programu. Ta bardzo przydatna cecha jest nazywana edytuj i kontynuuj. Aby wejść w tryb przerwania należy: Po uruchomieniu programu wybrać z menu Run, Break (nacisnąć Ctrl+Break lub kliknąć przycisk Break na pasku narzędziowym). • Aby zbadać i zmienić zmienną i wartość właściwości, należy wprowadzić odpowiednie polecenie w oknie Immediate lub sprawdzić wartość w oknie Locals. • Aby zbadać i zmienić kod, należy wyświetlić odpowiednie okno Code i zmienić go w miarę potrzeby. • Aby kontynuować działanie programu, należy nacisnąć F5 lub wybrać z menu Run, Start lub kliknąć przycisk Start na pasku narzędziowym.

  47. Wyrażenia Watch Wyrażenia Watch umożliwiają monitorowanie wartości określonych zmiennych, właściwości i wyrażeń w czasie działania programu. Wyrażenia Watch są wyświetlone w obszarze Watch okna Debug w trybie przerwania (poza wyrażeniami Watch, które pojawiają się w ich własnym okienku dialogowym). Można przerwać wykonanie programu, kiedy wyrażenie Watch ulega zmianie lub ma wartość True. Aby dodać wyrażenie Watch do programu należy: • W czasie projektowania lub podczas trybu przerwania wybrać z menu Debug, Add Watch, aby otworzyć okienko dialogowe Add Watch. • W okienku tekstowym Expression należy wpisać zmienną, właściwość lub wyrażenie, które ma być obserwowane. • W Context należy wybrać moduł(y) i procedurę(y), w których ma być obserwowana zmienna, właściwość lub wyrażenie. Zawężenie zakresu obserwacji umożliwia przyśpieszenie działania wykrywacza błędów. • W Watch Type należy wybrać Watch Expression (aby tylko obserwować), Break When Value Is True (aby przerwać działanie programu, kiedy wartość wyrażenia Watch ma wartość True) lub Break When Value Changes (aby zatrzymać, kiedy wartość wyrażenia ulega zmianie).

  48. Aby przeprowadzić stałą obserwację - to znaczy, aby oglądać bieżącą wartość zmiennej, właściwości lub wyrażenia należy: • Po wejściu w tryb przerwania, wybrać właściwą zmienną, właściwość lub wyrażenie w odpowiednim oknie Code lub na obszarze Code okna Debug, • Wybrać z menu Debug, Quick Watch lub nacisnąć Shift+F9 albo kliknąć przycisk Quick Watch na pasku narzędziowym. Elementy programowania

  49. Punkt przerwania Punkt przerwania określa konkretny wiersz kodu, gdzie Visual Basic zatrzyma działanie programu i wejdzie w tryb przerwania. Umożliwia to zbadanie stanu programu (wartości zmiennych, wydruku ekranu i tak dalej) w specyficznym miejscu działania programu. Aby ustawić lub usunąć punkt przerwania dla wiersza kodu należy: • W czasie projektowania lub podczas trybu przerwania umieścić wskaźnik (kursor) w wierszu i wybrać z menu Debug, Toggle Breakpoint lub nacisnąć F9, albo kliknąć przycisk Toggle Breakpoint na pasku narzędziowym. Elementy programowania

More Related