Pchełki VBA, odcinek 22: Niedotykalska

Niedotykalskość jest pojęciem matematycznym. Jeżeli więc ktoś spodziewał się tutaj czegoś innego (zaprawdę nie wiem, czego), to niech lepiej idzie oglądać śmieszne koty. Liczba niedotykalska (po naszemu: untouchable number) to taka liczba naturalna, której nie da się przedstawić w postaci sumy podzielników jakiejkolwiek liczby naturalnej (z wyłączeniem tej liczby). Jeszcze raz: bierzemy jakąś liczbę X … Continue reading Pchełki VBA, odcinek 22: Niedotykalska

Pchełki VBA, odcinek 21: Makra precz!

Dziś pokażę w jaki sposób za pomocą VBA zapisać bieżący dokument (zawierający makra, czyli kod VBA) w postaci "bezmakrowej". A po co? Zastosowań jest kilka. Mi się zdarzyło niedawno, że musiałem zaimplementować "bursting" plików XLSX, czyli masowo wygenerować pliki o identycznej strukturze, ale z różnymi danymi. "Zasysanie" danych wymagało użycia kodu VBA i odbywało się … Continue reading Pchełki VBA, odcinek 21: Makra precz!

Pchełki VBA, odcinek 20: polskie znaczki

Niedawno jakaś zbłąkana dusza trafiła na mego bloga w poszukiwaniu metody na znalezienie w tekście, za pomocą VBA, polskich znaków. Z kontekstu domyśliłem się, że nie chodzi o znaki drogowe. Drogą intensywnej dedukcji wykoncypowałem nawet, że chodzi o polskie znaki diakrytyczne, czyli tzw. "ogonki". W dzisiejszym odcinku "Pchełek" pokażę w jaki sposób wyłuskać polskie literki … Continue reading Pchełki VBA, odcinek 20: polskie znaczki

Pchełki VBA, odcinek 19: czytamy z pliku

Nie jestem osobnikiem zbyt wścibskim i nigdy tak naprawdę nie byłem w stanie zrozumieć szaleństwa programów typu "Big Brother", w których podglądactwo z wstydliwej czynności zostało wzniesione na piedestał i okazało się Sztuką (przez wielkie "gie" co prawda, ale jednak sztuka to sztuka). Niemniej jednak czasami zaglądam w statystyki tego bloga, a już najbardziej interesuje … Continue reading Pchełki VBA, odcinek 19: czytamy z pliku

Pchełki VBA. Odcinek 18: gradienty

W dzisiejszym odcinku pchełek pobawimy się kolorami. A konkretnie, spróbujemy pokolorować tła komórek w pojedynczym wierszu w taki sposób, żeby uzyskać efekt gradientowego przejścia między dwoma kolorami. Od razu przypomnę, że możliwość nadawania gradientu w tle komórki istnieje w Excelu od dawna - jednak dotyczy ona wyłącznie pojedynczej komórki. Ja zaś spróbuję uzyskać ów gradient … Continue reading Pchełki VBA. Odcinek 18: gradienty

Pchełki VBA, odcinek 17: Shape

Kolega spytał mnie niedawno w jaki sposób utworzyć pole tekstowe z zaokrąglonymi rogami, w zadanej komórce. Pole tekstowe ma być sformatowane tak samo jak komórka pod nim. Rozwiązanie jest względnie proste aczkolwiek stopień komplikacji zależy w dużej mierze od tego jak bardzo owo pole tekstowe ma przypominać przykrywaną przez siebie komórkę. Przykład, który dziś pokażę, … Continue reading Pchełki VBA, odcinek 17: Shape

Pchełki VBA, odcinek 16: Enum

Jakiś nieszczęśnik trafił wczoraj na mojego bloga w poszukiwaniu typów wyliczanych w VBA. Przypuszczam, że w efekcie usnął i spóźnił się do pracy, skutkiem czego zapamiętał sobie, żeby nigdy więcej tutaj nie zaglądać. Niemniej jednak nadgryzę temat - a nuż ktoś kiedyś tu trafi szukając typów wyliczanych - i proszę bardzo, wszystko podane jak na … Continue reading Pchełki VBA, odcinek 16: Enum

Pchełki VBA, odcinek 14: Kolorki

Dzisiejsza pchełka będzie pchełką wśród pchełek, czyli maleństwo. Zaledwie dwanaście linii kodu. Pokażę w jaki sposób odczytać programowo kolor zadanego piksela na ekranie. Umiejętność raczej rzadko potrzebna, ale nigdy nic nie wiadomo. A nuż ktoś kiedyś będzie potrzebował odczytać kolor piksela - i bang, oto jest. Zaczynamy. Najpierw kod, potem wyjaśnienia. Kod: Option Explicit Private … Continue reading Pchełki VBA, odcinek 14: Kolorki

Pchełki VBA, odcinek 13: odrobina matematyki, czyli test AKS

Rzecz będzie o matematyce. Proszę się nie martwić, nie zamierzam dziś udowadniać, że P = NP ani hipotezy Riemanna. Nie zamierzam nawet tłumaczyć szczegółów tytułowego testu AKS. Wpomnę tylko o nim, a następnie rzucimy się w wir kodowania. Test AKS jest testem pierwszości liczb. O testach pierwszości już wcześniej pisałem, o tutaj - wtedy jednak … Continue reading Pchełki VBA, odcinek 13: odrobina matematyki, czyli test AKS

Pchełki VBA – Odcinek 12: Schowek

Jako wieloletni Bazyl, z odchyłami w kierunku hurtowni danych, muszę czasem pobawić się w tychże danych modelowanie. Modele danych dzielą się, w najszerszym ujęciu, na logiczne i fizyczne. Modele logiczne próbują opisać dane w sposób przyjazny dla użytkowników końcowych: opisywane tam obiekty odnoszą się do elementów świata rzeczywistego (takich jak bank, kartofel czy komin), używa … Continue reading Pchełki VBA – Odcinek 12: Schowek

Pchełki VBA – odcinek 11: Odbijany

W dzisiejszym numerze "Pchełek" pokażę jak w prosty sposób zrobić "odbijankę". A więc: prostokąt X na Y pikseli, zaczynamy z górnego lewego rogu, rysujemy linię ukośną w dół w prawo aż trafimy na bok prostokąta, wtedy "odbijamy" się na zasadzie promienia świetlnego i tak w kółko Macieju aż dotrzemy do któregokolwiek z narożników. Aha, i … Continue reading Pchełki VBA – odcinek 11: Odbijany

Pchełki VBA – odcinek 10: logger

Dzisiaj mamy jubileusz, pierwsza dziesiątka pchełek za nami! Tym razem zamiast pchełki będzie pchła, a w zasadzie pchliszcze. Napiszemy dziś więcej kodu niż zwykle, bo i zadanie do wykonania będzie nieco trudniejsze. Ale może się czegoś przy okazji nauczymy... Zadanie: napisać prosty logger, który dla jednego z arkuszy będzie rejestrował wszelkie działania na tym arkuszu: … Continue reading Pchełki VBA – odcinek 10: logger

Pchełki VBA – odcinek 9: szukajcie, a znajdziecie

Dzisiaj pokażę jak za pomocą VBA przeszukać zakres komórek pod kątem konkretnego tekstu. Zadanie: napisać funkcję, która na podstawie zadanego zakresu komórek oraz szukanego tekstu, znajdzie ten tekst oraz zwróci opisową informację czego szukano oraz w której komórce to znaleziono. Jeżeli nie uda się znaleźć szukanego tekstu, funkcja ma zwrócić informację o nieudanych poszukiwaniach, czego … Continue reading Pchełki VBA – odcinek 9: szukajcie, a znajdziecie

Pchełki VBA – Odcinek 8: rekurencja

Dziś o rekurencji. Czym jest rekurencja? To taki rodzaj definicji (bądź funkcji), która odwołuje się do samej siebie. Przy czym, musi być dodatkowo zdefiniowany jakiś stan brzegowy ("początkowy") w celu uniknięcia zapętlenia definicji w nieskończoność. Dobrym przykładem takiej nieskończonej rekurencji jest trójkąt Sierpińskiego. Żeby przerobić zwykły trójkąt równoboczny na trójkąt Sierpińskiego, należy podzielić go trzema … Continue reading Pchełki VBA – Odcinek 8: rekurencja

Pchełki VBA – odcinek 7: listujemy zawartość folderu

Dzisiejsza pchełka dotyczy operacji na plikach. Ponieważ operacje na plikach są tematem bardzo rozległym, a pchełki z założenia są maleńkie, musnę dziś tylko wierzchołek góry lodowej - a przy tej okazji pokażę jak iterować po elementach kolekcji. Zadanie na dziś: napisać procedurę, która na wejściu przyjmuje dwa parametry: komórkę początkową oraz nazwę folderu, a w … Continue reading Pchełki VBA – odcinek 7: listujemy zawartość folderu

Pchełki VBA – Odcinek 6: między arkuszami

Dziś rano Google skierowało na mojego bloga jakiegoś człowieka, który próbował wykombinować jak to zrobić, żeby kliknięcie w komórkę spowodowało przełączenie do innego arkusza. Dokładna fraza, jaką ów człowiek wpisał do wyszukiwarki, brzmiała: otwarcie innego arkusza po kliknięciu w komórkę Jakkolwiek wątpię, że ów delikwent kiedykolwiek powróci na mojego bloga (zapewne podczas dzisiejszej przypadkowej wizyty … Continue reading Pchełki VBA – Odcinek 6: między arkuszami

Pchełki VBA – odcinek 5: zdarzenia

Dziś maleństwo, które może samo w sobie nie jest niczym szczególnym, ale powinno trochę pomóc w zrozumieniu modelu zdarzeń VBA. Kod VBA wpisany do modułu można uruchomić na jeden z trzech sposobów: Bezpośrednio z edytora VBA, ustawiając się wewnątrz procedury, którą chcemy uruchomić, i naciskając F5 Poprzez wywołanie za pośrednictwem funkcji arkusza. Poprzez obsługę zdarzenia. … Continue reading Pchełki VBA – odcinek 5: zdarzenia

Pchełki VBA – odcinek 4: od AAA do ZZZ

Niedawno pisałem o tym, jak wygenerować wszystkie kombinacje dwuliterowe liter alfabetu łacińskiego. Udało się, i to bez krztyny kodu VBA - uciekliśmy się wtedy do "brudnego" tricku i powyciągaliśmy te kombinacje z nazw kolumn arkusza. Dziś wygenerujemy sobie wszystkie kombinacje trzyliterowe. A więc: AAA, AAB, AAC, ..., ZZX, ZZY, ZZZ. Zacznijmy od policzenia ile ich … Continue reading Pchełki VBA – odcinek 4: od AAA do ZZZ

Pchełki VBA – odcinek 3: własna funkcja

Dziś pokażę jak napisać własną, niestandardową funkcję, której można następnie używać w arkuszu. Po pierwsze jednak, zanim kiedykolwiek zaczniemy pisać własną funkcję arkusza, upewnijmy się, że to, co chcemy uzyskać, nie istnieje już w zestawie funkcji standardowych (wbudowanych). Małomiękki z wersji na wersję dorzuca do Excela mnóstwo nowych funkcji i nie warto odkrywać koła ani … Continue reading Pchełki VBA – odcinek 3: własna funkcja