ďťż
Lemur zaprasza
twoja przeglondarka nie obsługuje Javascript :). główna strona w serwisie to http://www.visualbasic.terramail.pl/index.htmlJeśli chcesz obejrzeć stronę kursu to: - jeśli twoja przeglądarka obsługuje style to oglądasz właściwą stronę - jeśli nie to uruchom adres http://www.visualbasic.terramail.pl/kursnn.html Początkowe lekcje kursu nie są przeznaczone dla zaawansowanych umieszczam tu najprostsze informacje które umożliwią początkującym użytkownikom łatwiejszą pracę z użyciem MS Worda. Lekcja 1Lekcja 2Do strony głównej 1lekcjaPodstawyZajmiemy się teraz tworzeniem prostych acz przydatnych makr. Dla wielu ludzi lekcja pierwsza może okazać się wystarczająca do pracy którą wykonują na co dzień ale i ich zachęcam do przeglądania następnych.
Tworzenie nowego makra Na początku wpiszmy jakiś tekst dowolny (jeśli nic ci nie przychodzi do głowy to skopiuj zamieszczony tu plik z tekstem, plik zip, plik rar). Aby najłatwiej utworzyć nowe makro należy przejść do menu -narzędzia- (Alt+N) -Makro...- (Alt+M) i wybrać -zarejestruj nowe makro- plik z tekstem, plik zip, plik rar). Aby najłatwiej utworzyć nowe makro należy przejść do menu-narzędzia- (Alt+N) -Makro...- (Alt+M) i wybrać -zarejestruj nowe makro- lub (jeśli nie jest już włączony) uruchomić pasek narzędzi Visual Basic a następnie przycisnąć przycisk -zarejestruj makro-. Po naciśnięciu ukaże się nam nowe okienko. Zmienimy w nim nazwę makra na np. Puchatek oraz koniecznie!!! w ramce -przechowuj makro w- z listy rozwijanej wybierzemy nasz dokument. Teraz możemy zmienić jeszcze opis makra tak aby był bardziej przejrzysty. Naciskamy przycisk klawiatura i w tym momencie otwiera się okno -Dostosuj klawiaturę. Naciskamy dowolną kombinację klawiszy (proponuje by w przykładach używać kombinacji z trzema klawiszami control, alt, Shift, przyciśniętymi oraz jakimś dowolnym klawiszem A-Z) np. Alt+Control+Shift+P a następnie klikamy na przycisk -Przypisz- i jak poprzednio koniecznie zmieniamy w liście rozwijanej -Zapisz zmiany w...- z domyślnego Normal na nasz plik. Następnie klikamy zamknij. W tym momencie Visual Basic zaczął rejestrować nasze makro. W jakimś miejscu na stronie powinien być widoczny pasek -Zatrzymaj rejestrowanie- Korzystając z niego można w każdej chwili wstrzymać na jakiś czas rejestrowanie makra lub na dobre zakończyć rejestrację. Najpierw posłużymy się przyciskiem pauzy a następnie zaznaczymy cały tekst. Teraz nie zachodzi rejestracja makra dlatego ponownie przyciskamy przycisk aby ją wznowić. Załóżmy że zależy nam na tym aby teksty z których często korzystamy miały większy rozmiar o 2 punkty oraz były pisane kursywą. Aby zautomatyzować tę pracę (oczywiście rejestracja uruchomiona) określmy teraz parametry czcionki menu -format- i -czcionka- teraz zmieńmy wielkość a następnie, format czcionki na kursywę. Teraz można już przycisnąć przycisk Stop i przejść do następnego punktu by cieszyć się swoim dziełem. Uruchamianie nowego makra Aby makro miało jakąś wartość użytkową powinno być uruchamiane wielokrotnie. Jak pamiętacie zapisaliśmy makro jako skrót klawiaturowy alt+control+Shift+M. Dlatego teraz zmienimy formatowanie tekstu napisanego poprzednio na inne np. jego rozmiar, kolor oraz formatowanie z kursywy na normalne. Teraz zaznaczymy cały tekst (lub dowolną jego Cześć) i uruchamiamy makro przez naciśnięcie Alt +Control+Shift+M i oglądamy efekty. Zmiana ustawień makra Jeśli jeszcze tego nie sprawdziliście to informuję teraz to makro działa tylko w obrębie pliku w którym jest zapisane. Aby makro było widoczne z każdego pliku w Wordzie należy zapisać je w szablonie Normal.dot. W tym celu należy powtórzyć cały poprzedni paragraf zmieniając tylko w dwóch miejscach nazwę naszego pliku na Normal. Jednak przestrzegam przed jakimi kolwiek zmianami na nie swoim komputerze nie każdy lubi dodatkowe makra i nie każdy radzi sobie z ich usunięciem. Jak zauważyliśmy zapisane makro zmienia wszystkie parametry naszego tekstu a nie zawsze na tym nam zależy. Czasami chcieli byśmy aby makro np. tylko pogrubiało i zmieniało na kursywę bez zmiany wielkości liter. Wyobraźmy sobie dokument z tekstem źródłowym który ma być zapisany kursywą pierwsza część tego tekstu jest napisana Arialem a druga inną czcionką. Aby zabezpieczyć się przed niechcianymi zmianami w tekście należałoby jakoś zmodyfikować makro dostosowując je do swoich potrzeb. W tym celu przejdziemy do edytora VBA który umożliwia pełną kontrolę nad naszymi makrami. Aby się tam dostać naciskamy Alt+[F11] lub w menu -narzędzia- wybieramy -makro- edytor -Visual Basic-. Uruchomiona aplikacja jest częścią pakietu Office. W lewej części okna VBA można znaleźć okno eksploratora obiektów i widoczne co najmniej dwie główne gałęzie. Pierwsza to normal druga dotyczy naszego projektu. Aby zmienić nasze makro otwieramy gałąź naszego projektu (+) i folder Moduły. Znajduje się w nim obiekt NewMacros. Po jego otwarciu widzimy zapisane makro a w nim parametry czcionki aby zrezygnować z niektórych należy je po prostu linijka po linijce usunąć (tutaj zachęcam do eksperymentów - jeśli próbujemy na niepotrzebnym tekście raczej nic złego nam nie grozi) lub też zmienić by spełniały nasze potrzeby. Całą powyższą operację można przeprowadzić inaczej kiedy tworzymy makro zamiast zagłębiać się w menu -format- możemy dokonać zmiany podstawowych parametrów z paska narzędzi. W tym układzie makro będzie zmieniać tylko zadane parametry (ale to jest mało ekscytujące:)). Wielu w tym miejscu powie, że nie warto dla takich celów tworzyć makra, wystarczy wprowadzić nowy styl. Oczywiście mają oni rację. Przykład ten ma jednak na celu zobrazowanie sposobów posługiwania się rejestratorem makr oraz Edytorem VBA. Na zakończenie kilka ostrzeżeń. Od wejścia Office 97 zanim uruchomimy jakiś plik z makrem wyświetla się informacja, że plik owy je zawiera. Radzę w tym miejscu dla większości plików nieznanego pochodzenia, lub dla takich które nie wymagają jego uruchomienia wybrać domyślną opcję nie uruchamiania. Plik najczęściej jest czytelny nawet bez makr. Dokumenty Office jak niektórzy wiedzą mogą zawierać wirusy makrowe, są to najczęściej niebezpieczne "żyjątka", które kopiują się często do normal.dot zakażając cały system. W najlepszym razie po uruchomieniu wirusa makr może się okazać, że nie można już pracować w Wordzie lub co gorsza nie można w ogóle uruchomić komputera.Jeszcze kilka słów o usuwaniu makr z systemu. Aby usunąć makro należy w oknie eksploratora obiektów nacisnąć prawym klawiszem myszki na NewMacros i wybrać usuń makro następnie Nie i gotowe. W następnej aktualizacji trochę więcej o makrach i nie tylko Idź na początek 2lekcjaPraca z Edytorem Visual BasicW poprzedniej lekcji nauczyliśmy się tworzyć makra, otwierać edytor Visual Basica oraz przeglądać strukture projektu. W tej lekcji zajmiemy się analizą naszego makra oraz dalszą pracą w VBA. Analiza makra Kiedy otwieramy makro w edytorze Visual Basica zobaczymy poniższy kod (w przykładzie ponumerowałem linie w celu lepszego zrozumienia) Sub Puchatek() ' ' PuchatekMakro ' Makro1zmiana formatowania tekstu ' With Selection.Font .Name = "Times New Roman" .Size = 10 .Bold = False .Italic = True .Underline = wdUnderlineNone .StrikeThrough = False .DoubleStrikeThrough = False .Outline = False .Emboss = False .Shadow = False .Hidden = False .SmallCaps = False .AllCaps = False .ColorIndex = wdAuto .Engrave = False .Superscript = False .Subscript = False .Spacing = 0 .Scaling = 100 .Position = 0 .Kerning = 0 .Animation = wdAnimationNone End With End Sub Linia - 1 słowem Sub otwiera nową procedure o nazwie Puchatek (procedura to taki element w programie grupujący pewną ilość komend które można wykonać kiedy się ją wywoła)Linie - 2 do 5 otwierane są przez symbol - ' - ,oznacza on rozpoczęcie notatki. Za takim znakiem można umieszczać dowolny tekst który nie zostanie zinterpretowany przez Visual Basica (w edytorze tekst ten jest oznaczony kolorem zielonym). Innym sposobem wprowadzenia notatki jest użycie komendy REM (ze spacją).Linia - 6 otwiera komenda With służy ona do skrócenia ilości tekstu odwołującego się do kilku właściwości tego samego obiektu jej składnia wygląda tak With obiekt .właściwość1 = wartość1 .właściwość1 = wartość2 End WithObiektem jest tutaj Selection.Font. Można oczywiście cały kod zapisać nie korzystając z komendy With. np. ; Selection.Font.Name = "Times New Roman" Selection.Font.Size = 10 Selection.Font.Bold = FalseCzęsto tak właśnie się robi, ale gdy występuje więcej tych samych "nad obiektów" nie ma potrzeby powtarzania tego samego tekstu. Jak widać z kodu naszego makra większość obiektów ma swoje pod obiekty i tak Obiekt Selection ma podobiekt Font, a on podobiekt Name poszczególne obiekty w hierarchii są oddzielone od siebie kropką a właściwości obiektu są umieszczone po prawej stronie za znakiem równości.Można by to zobrazować w ten sposób obiekt samochód ma w sobie obiekt koło którego pod obiektem jest opona a jej właściwością jest tutaj np. stopień napompowania o jakieś wartości - samochód.koło.opona.ciśnienieniewoponie=20.Linie - 7 do 28 określają konkretne właściwości obiektu Select.Font. Obiekt ten po prostu oznacza "zaznaczony.tekst" i tak własność:- Name - to nazwa czcionki (każda wartość w postaci tekstu powinna być obięta cudzysłowiem),- Size - wielkość czcionki,- Bold - przyjmuje dwie wartości True albo False (można też wpisać 1lub 0). True oznacza tutaj potwierdzenie (czcionka pogrubiona) False negacje (czcionka bez pogrubienia).- Italic - określa czy czcionka ma być pisana kursywą- Underline to sposób podkreślenia i może on przyjmować wartości wdUnderlineNone (brak podkreślenia), wdUnderlineDash, wdUnderlineDotDash, wdUnderlineDotDotDash, wdUnderlineThick, wdUnderlineDotted, wdUnderlineDouble, wdUnderlineSingle, wdUnderlineWords, wdUnderlineWavy jak widać są to wartości zdefiniowane dlatego nie należy ich umieszczać w cudzysłowie podobnie jak słowa True i False. (zamiast nich można użyć liczb od 0 do 11 gdzie 0 to brak podkreślenia)- Outline - (opisze przy najbliższej okazji)- Emboss - (opisze przy najbliższej okazji)- Shadow - (opisze przy najbliższej okazji)- Hidden - (opisze przy najbliższej okazji)- SmallCaps - (opisze przy najbliższej okazji)- AllCaps - (opisze przy najbliższej okazji)- ColorIndex - kolor czcionki morze przyjmować wartości wdAuto, wdBlack, wdBlue, wdBrightGreen, wdDarkBlue, wdDarkRed, wdDarkYellow, wdGray25, wdGray50, wdGreen, wdNoHighlight, wdPink, wdRed, wdTeal, wdTurquoise, wdViolet, wdWhite, wdYellow (zamiast nich można użyć liczb od 0 do 16 gdzie 0 to kolor auto zazwyczaj czarny). Jak widać możemy użyć 16 kolorów czcionki.- Engrave - (opisze przy najbliższej okazji)- Superscript - (opisze przy najbliższej okazji)- Subscript - (opisze przy najbliższej okazji)- Spacing - (opisze przy najbliższej okazji)- Scaling - (opisze przy najbliższej okazji)- Kerning - (opisze przy najbliższej okazji)- Animation - sposób animacji morze przyjmować wartości wdAnimationBlinkingBackground, wdAnimationLasVegasLights, wdAnimationMarchingBlackAnts, wdAnimationMarchingRedAnts, wdAnimationNone, wdAnimationShimmer, wdAnimationSparkleText (zamiast nich można użyć liczb od 0 do 6 gdzie 0 to brak efektu)Ostatnia linia 30 zamyka procedure Puchatek Przykładowa zmiana elementów makra Naszym następnym zadaniem będzie takie przetworzenie kodu aby za każdym zastosowaniem makra uzyskać inny efekt animacji w tym celu będziemy musieli wygenerować liczbę losową. W Visual Basicu służy do tego funkcje Rnd. Funkcje są w pewnym sensie podobna do procedur (np. Procedury Puchatek) ale potrafą zwracać wartości. Funkcja Rnd pozwala na wygenerowanie liczby losowej z większej lub równej od 0 ale mniejszej od 1. Jej składnia wygląda następująco Rnd[(liczba)] (liczba jest argumentem opcjonalnym i określa sposób w jaki liczba jest generowana). W celu zainicjowania generatora należy użyć funkcji Randomize[(liczba)] (podobnie jak wyżej w funkcji Rnd wartość liczba jest tutaj opcjonalna gdy nie użyje się żadnej liczby to Randomize przekarze generatorowi liczb losowych wartość "ziarna" pochodzącą z zegara systemowego). Aby uzyskać efekt różnych animacji potrzebujemy liczby z przedziału od 1 do 6 a jak wiemy generator pozwala uzyskać liczby z przedziału od 0 do 1 dlatego trzeba napisać komendę która umożliwi rozszerzenie jego możliwości:Int((wartość_największa_przedziału - wartość_najmniejsza_przedziału + 1) * Rnd + wartość_najmniejsza_aprzedziału).I tutaj poznajemy nową funkcje - Int . Jej składnia jest następująca Int[(liczba)]. funkcja ta odrzuca wartość całkowitą argumentu liczba i ją zwraca (jak widać wartością liczba jest tu działanie ((wartość_największa_przedziału - wartość_najmniejsza_przedziału + 1) * Rnd + wartość_najmniejsza_przedziału) w którym wartość_najmniejsza_przedziału to najmniejsza z potrzebnych liczb a wartość_największa_przedzału to największa z potrzebnych liczb). Dla naszego przykładu funkcja ta będzie miała następującą postać:Int((6-1+1)*Rnd+1) tą zależność umieścimy teraz w naszym makrze Puchatek, ale żeby ograniczyć działanie makra do zmiany tylko efektu animacji usuniemy z niego niepotrzebne elementy tak aby miało ono postać: Sub Puchatek() 'Puchatek Makro 'Makro1 zmiana formatowania tekstu ' With Selection.Font .Animation = wdAnimationSparkleText End With End Sub I następnie Sub Puchatek() 'Puchatek Makro 'Makro1 zmiana formatowania tekstu ' Randomize Selection.Font.Animation = Int((6-1+1)*Rnd+1) End Sub Jeśli będziemy chcieli aby wśród tych losowych wartości było również 0 (brak animacji) można spokojnie ją umieścić zamiast jedności. Poza tym w analogiczny sposób można zastosować tą funkcje dla np. zmiany kolorów w zaznaczonym tekście.Podczas wpisywania danych w naszym module edytor VBA pokazuje nam domyślne wartości jakich oczekuje dla danej funkcji jest to często bardzo przydatna cecha dzięki której można ograniczyć bardzo wiele błędów. Inną jego cechą VB jest nie rozróżnialność wielkości liter kodu.W następnych lekcjach zajmiemy się tworzeniem formularzy oraz okienek uruchomieniowych Idź na początek |