Archiwum kategorii: VBA – ogólne

Niespodziewany błąd Overflow

przez | 2024-12-29

Niedawno pisałem pewne makro. Czasami makro się wykrzaczało gdyż wyskakiwał błąd Run-time error 6: Overflow. Błąd ten oznacza, że chcę do zmiennej przypisać zbyt dużą liczbę. Przykładowo jeśli bym zadeklarował zmienną jako Byte (zmienna tego typu może przyjmować tylko wartości od 0 do 255) a próbował przypisać jej wartość 5 000 to wyskoczy wspomniany błąd. Jednak… Dowiedz się więcej »

Jak wstrzymać wykonywanie kodu na kilka sekund?

przez | 2024-11-09

Czasami piszemy jakiś kod i chcemy zatrzymać wykonywanie aplikacji na określony czas. Np. nasza aplikacja uruchamia jakiś zewnętrzny program i nie chcemy aby następne instrukcje wykonały się od razu, tylko po pewnym czasie (np. jak uruchomiona przez nas zewnętrzna aplikacja się wykona i zwróci wynik w postaci utworzonego pliku). Uwaga: zakładanie na sztywno, że wstrzymanie… Dowiedz się więcej »

Publiczne procedury i ich widoczność w oknie Makro

przez | 2024-07-07

Naciskając kombinację klawiszy ALT+F8 lub wybierając polecenie Makra z karty Deweloper możemy ujrzeć taką oto niespodziankę: Często w modułach tworzę publiczne procedury, które dzięki temu, że są publiczne mogą być wywoływane z różnych miejsc (np. mogę chcieć, aby niektóre uniwersalne procedury były wywoływane z różnych formularzy). Ale nie chcę aby te procedury były dostępne w… Dowiedz się więcej »

Jak odpalić VBE po kliknięciu w przycisk?

przez | 2024-06-25

Ostatnio pisałem proste narzędzie rozszerzające możliwości edytora Visual Basic (VBE) i chciałem w arkuszu Excela umieścić przycisk w którego kliknięcie od razu mi uruchamia edytor VBA. No cóż zamiast klikać w kartę Deweloper i potem w Visual Basic chciałem zaoszczędzić jedno kliknięcie gdyż w danym projekcie (na etapie rozwoju) często po otworzeniu skoroszytu od razu… Dowiedz się więcej »

Co oznacza dwukropek i znak równości := w wywołaniu funkcji?

przez | 2024-06-05

W jednym z poprzednich wpisów czytelnik zadał pytanie co oznacza taki dziwny zapis w wywołaniu metody (funkcji) InputBox z obiektu Application: Zapis := w VBA oznacza przypisanie wartości do konkretnego argumentu w funkcji lub metodzie. Pozwala to na bardziej czytelne przekazywanie argumentów, szczególnie gdy funkcja ma ich wiele, a nie wszystkie są wymagane. Oto prosty… Dowiedz się więcej »

Jak ustawić breakpoint dla zdarzenia np. Workbook_Open

przez | 2024-05-14

Tworząc różnego rodzaju makra bardzo często śledzę kod krok po kroku (debugguje), aby dowiedzieć się, dlaczego coś nie działa. Pewnie nie raz ustawiasz w różnych miejscach w kodzie „breakpointy”. Niestety, ale zamykając skoroszyt (w przypadku Worda będzie to dokument) czyszczone są wszystkie wcześniej ustawione breakpointy. Problem pojawia się wtedy, gdy chcę prześledzić krok po kroku… Dowiedz się więcej »

Automatyczne zapisywanie projektu w VBA

przez | 2024-04-04

Mam taki nawyk, że co około 5 minut naciskam magiczną kombinację klawiszy Ctrl+S, aby zapisać projekt. Czasami jednak człowiek jest tak wciągnięty w proces pisania kodu, że o tym zapomina. Po naciśnięciu klawisza F5 następuje chwila konsternacji bo nagle okazuje się, że mój kod wpada w nieskończoną pętlę i zawiesza całego Excela. A opcja autozapisu… Dowiedz się więcej »

Jak wykryć, czy jest wciśnięty klawisz Scroll Lock?

przez | 2024-03-06

Klawisz Scroll Lock jest klawiszem, który występuje na klawiaturach ze względów historycznych. Prawie żaden współczesny program go nie używa. Jedną z nielicznych znanych aplikacji, które go używają to Excel. Wciśnięty klawisz Scroll Lock zmienia zachowanie tej aplikacji. Gdy naciskamy np. strzałkę w dół, to kursor „schodzi” do komórki znajdującej się wiersz niżej, np. był w… Dowiedz się więcej »