Andrzej Borowiecki. Programowanie. dla arkusza kalkulacyjnego Excel.



Podobne dokumenty
Program pyta na początku o liczbę wartości do wyrównania:

Makropolecenia w Excelu

Przenoszenie, kopiowanie formuł

KATEGORIA OBSZAR WIEDZY

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Sylabus Moduł 2: Przetwarzanie tekstów

Instrukcja obsługi Nowego Punktatora

Praktyczne wykorzystanie arkusza kalkulacyjnego w pracy nauczyciela część 1

Ćwiczenie 1 Obsługa makr

Visual Basic w programie Excel dla Windows

Wstawianie nowej strony

Część I: Excel - powtórka

Równania w Microsoft Word 2007 Microsoft Equation 3.0 Formatowanie strony. dr inż. Jarosław Forenc. Symbol Więcej symboli

TEMAT: SPOSOBY ADRESOWANIA W

Arkusz kalkulacyjny EXCEL

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Instrukcja szybkiej obsługi

Test z przedmiotu zajęcia komputerowe

Technologie informacyjne: Arkusz kalkulacyjny

ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 5.0

Przygotuj za pomocą tabulatorów element formularza. Utwórz pole tekstowe i sformatuj tak, aby dół napisu w polu był dokładnie nad kropkami.

Tematy lekcji informatyki klasa 4a luty/marzec 2013

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

Kontrola poprawności danych:

Temat: Organizacja skoroszytów i arkuszy

Obliczanie wartości średniej i odchylenia standardowego średniej w programie Origin

Tematy lekcji informatyki klasa 4a styczeń 2013

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

Działki Przygotowanie organizacyjne

Zarejestruj makro w trybie względnego adresowania które będzie wpisywało bieżącą datę w

Techniki wstawiania tabel

Makra w arkuszu kalkulacyjnym

Sylabus Moduł 3: Arkusze kalkulacyjne

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010

Praca w edytorze WORD

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Zakładka Obmiar jest dostępna dla pozycji kosztorysowej w dolnym panelu. Służy do obliczania ilości robót (patrz też p ).

LEGISLATOR. Data dokumentu:17 września 2012 Wersja: 1.3 Autor: Paweł Jankowski

Część I: Przypisanie makr do obiektu (przycisku).

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word

ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 6.0

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

Rys. 1. Aktywne linki będą wstawiane za pomocą rozwijanej listy

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

Formularze w programie Word

Arkusz kalkulacyjny MS Excel 2010 PL.

Wprowadzenie do MS Excel

Dostosowanie szerokości kolumn

Excel 2016 PL w biurze i nie tylko / Sergiusz Flanczewski. Gliwice, cop Spis treści

7.9. Ochrona danych Ochrona i zabezpieczenie arkusza. Pole wyboru

TABELE I WYKRESY W EXCELU I ACCESSIE

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

PRACA Z FORMULARZAMI UserForm

Przygotuj za pomocą tabulatorów element formularza. Utwórz pole tekstowe i sformatuj tak, aby dół napisu w polu był dokładnie nad kropkami.

Microsoft Excel. Podstawowe informacje

2 Arkusz kalkulacyjny

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Europejski Certyfikat Umiejętności Komputerowych. Moduł 3 Przetwarzanie tekstów

PROGRAM GEO Folder ten naleŝy wkleić do folderu osobistego: D:\inf1\nazwisko\GEO89

Spis treści. Lekcja 1: PowerPoint informacje podstawowe 1. Lekcja 2: Podstawy pracy z prezentacjami 36. Umiejętności do zdobycia w tej lekcji 36

Kurs ECDL Moduł 3. Nagłówek i stopka Microsoft Office Word Autor: Piotr Dębowski. piotr.debowski@konto.pl

Jeżeli pole Krawędź będzie zaznaczone uzyskamy obramowanie w całej wstawianej tabeli

NAGŁÓWKI, STOPKI, PODZIAŁY WIERSZA I STRONY, WCIĘCIA

Co to jest arkusz kalkulacyjny?

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

VBA praca z makrami w Excelu

TP1 - TABELE PRZESTAWNE od A do Z

FORMUŁY AUTOSUMOWANIE SUMA

5.4. Tworzymy formularze

Wymagania edukacyjne na poszczególne oceny. z przedmiotu Informatyki. w klasie VI

Sylabus Moduł 4: Grafika menedżerska i prezentacyjna

Trik 1 Edycja wykresu bezpośrednio w dokumencie Worda

Program szkoleniowy. 16 h dydaktycznych (12 h zegarowych) NAZWA SZCZEGÓŁY CZAS. Skróty do przeglądania arkusza. Skróty dostępu do narzędzi

M a k r a i d o d a t k o w e f o r m a n t y

Trik 1 Autorejestrowanie zmian dokonanych w obliczeniach

Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85

Podręczna pomoc Microsoft Excel 2007

Rejestracja faktury VAT. Instrukcja stanowiskowa

Wstęp do poradnika metodycznego Przykładowy rozkład materiału 13 I rok nauczania...13 II rok nauczania...13 Rozkład materiału:...

INSTRUKCJE DO ARKUSZA KALKULACYJNEGO Excel 2003

1. Wstawianie macierzy

Excel formuły i funkcje

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

dolar tylko przed numerem wiersza, a następnie tylko przed literą kolumny.

Edytor tekstu OpenOffice Writer Podstawy

Egzamin zawodowy: Technik Informatyk 312[01] Oprogramowanie biurowe pytania i odpowiedzi

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS

BIBLIOGRAFIA W WORD 2007

Generator CABRILLO program Marka SP7DQR (Instrukcja obsługi)

NAGŁÓWKI, STOPKI, PODZIAŁY WIERSZA I STRONY, WCIĘCIA

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

Metodyka wykonania kartogramu z podziałem na klasy wg punktów charakterystycznych wraz z opracowaniem kartogramicznej legendy.

MS Excell 2007 Kurs podstawowy Filtrowanie raportu tabeli przestawnej

Laboratorium nr 3. Arkusze kalkulacyjne.

Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007

Transkrypt:

Andrzej Borowiecki Programowanie w języku Visual Basic dla arkusza kalkulacyjnego Excel. Kraków 2009 1

Programowanie w języku Visual Basic dla arkusza kalkulacyjnego Excel. 1. Wprowadzenie W celu dostosowania arkusza kalkulacyjnego do swoich potrzeb, uŝytkownik moŝe tworzyć tzw. Makra (skrót od makrokomendy), czyli programy w języku Visual Basic. Najprostszą i zarazem najprymitywniejszą formą tworzenia makra jest automatyczne rejestrowanie czynności wykonywanych ręcznie przez uŝytkownika na arkuszu. Takie makro, po uruchomieniu odtworzy dokładnie wszystkie wykonane operacje. Powstaje tylko pytanie: Po co? Skoro utworzyliśmy jakiś formularz ręcznie moŝemy go zapisać na dysku lub dyskietce i korzystać z niego tyle razy ile zajdzie potrzeba. Opisane wyŝej makro jest tylko inną formą przechowywania formularza. Makro rejestrowane automatycznie moŝe być uŝyteczne zwłaszcza wtedy gdy piszemy program i nie wiemy jak zapisać jakąś funkcję lub operację. Wystarczy wtedy wykonać ją ręcznie, rejestrując to jako makro. Następnie odczytujemy w programie w jakiej formie została zapisana. DuŜo waŝniejsza jest umiejętność świadomego programowania w języku Visual Basic wtedy, kiedy kształt formularza nie jest jednoznacznie określony, np. kiedy obliczamy pole powierzchni wieloboku ze współrzędnych moŝe to być czworobok, pięciobok, sześciobok itd. Za kaŝdym razem potrzebny jest formularz o innych wymiarach. Podobnie, kiedy wykonujemy obliczenie średniej arytmetycznej zgodnie z zasadami rachunku wyrównawczego, wraz z oceną dokładności i wszystkimi kontrolami, potrzebujemy formularza o wymiarach dostosowanych do liczby uśrednianych wielkości. Innym przykładem moŝe być obliczenie ciągu poligonowego, gdzie liczba wyznaczanych punktów, a tym samym liczba wierszy, wpływa w sposób decydujący na lokalizację obliczeń kontrolnych, odchyłek kątowych oraz liniowych. W niniejszym rozdziale zostaną omówione podstawowe komendy w Visual Basicu potrzebne do utworzenia formularza: - zaznaczanie pojedynczych pól lub ich grupy; - wstawianie napisów, wzorów i funkcji; - rysowanie ramek; - kopiowanie wyraŝeń w wierszach lub kolumnach; - tworzenie formularza o zadanych wymiarach; - wprowadzanie ochrony arkusza. 2

2. Tworzenie makr. W celu rejestracji lub edycji makr naleŝy wejść do opcji Narzędzia Makro. Następnie mamy do wyboru: - Makra - Zarejestruj nowe makro - Edytor Visual Basic Edytor Visual Basic pozwala na pisanie treści programu 3

3 Podstawowe komendy makr w arkuszu kalkulacyjnym Nie będziemy tu omawiać wszystkich zasad pisania programów w języku Visual Basic. Skoncentrujemy się głównie na tych poleceniach i komendach, które charakterystyczne są dla arkusza kalkulacyjnego. Sub... End Sub KaŜde makro zaczyna się od linii w której występuje słowo kluczowe Sub a następnie nazwa tego makro, np.: Ostatnią linią tekstu danego makro jest pierwsza napotkana linia zawierająca tekst End Sub Zaznaczanie pól arkusza - Range("...").Select KaŜda operacja, którą wykonujemy na arkuszu wstawianie tekstu, ramek, funkcji czy wykresów zaczyna się od wskazania pola arkusza lub obszaru, w którym dany element ma zostać umieszczony. Kiedy pracujemy ręcznie, wybrane pole lub obszar zaznaczamy myszą. Instrukcja Range(" ").Select pojedynczego pola, np.: umoŝliwia zaznaczenie na arkuszu lub całego zakresu pól, np.: Range("B1").Select Range("B1:D6").Select 4

Wstawianie napisów - ActiveCell.FormulaR1C1 = Niezbędnym elementem arkusza są wszelkiego rodzaju opisy, ułatwiające orientację w zadaniu umieszczone głównie z myślą o człowieku uŝytkującym arkusz, gdyŝ komputer nie wykorzystuje ich do obliczeń. W celu umieszczenia na arkuszu napisu naleŝy zaznaczyć wybraną komórkę arkusza za pomocą instrukcji Range(" ").Select, a następnie wstawić tekst za pomocą instrukcji ActiveCell.FormulaR1C1 =, np.: Range("B1").Select ActiveCell.FormulaR1C1 = "Obliczenie średniej arytmetycznej" Obie te instrukcje mogą być napisane w jednej linii, oddzielone dwukropkiem: Range("A3").Select: ActiveCell.FormulaR1C1 = "Nr" lub połączone: Range("B3"). ActiveCell.FormulaR1C1 = "L" Range("C3"). ActiveCell.FormulaR1C1 = "l" Parametry tekstu: Po zaznaczeniu pojedynczego pola arkusza, lub większego obszaru moŝemy zmieniać róŝne cechy tego obszaru posługując się słowem Selection co oznacza w tym wypadku zaznaczony obszar. Np. Range("B2:D5").Select - pogrubiona czcionka włączanie - wyłączanie - - kursywa włączanie - wyłączanie - Selection.Font.Bold = True Selection.Font.Bold = False Selection.Font.Italic = True Selection.Font.Italic = False - podkreślanie włączanie - Selection.Font.Underline = xlunderlinestylesingle wyłączanie - Selection.Font.Underline = xlunderlinestylenone 5

- justowanie tekstu do lewej strony - Selection.HorizontalAlignment = xlleft na środek - Selection.HorizontalAlignment = xlcenter do prawej strony- Selection.HorizontalAlignment = xlright - zmiana fontu Selection.Name = "Courier New CE" Selection.Name = "Times New Roman CE" - zmiana wielkości Selection.Size = 10 Selection.Size = 14 - indeks dolny (subscript) i górny (superscript) w polu C9 wpisać v i Range("C9").ActiveCell.FormulaR1C1 = "vi" Z wpisanego tekstu wybiera się ciąg znaków o długości 1 poczynając od drugiego znaku.: With ActiveCell.Characters(Start:=2, Length:=1).Font.Subscript = True w polu C10 wpisać a 2 Range("C10").ActiveCell.FormulaR1C1 = "a2" With ActiveCell.Characters(Start:=2, Length:=1).Font.Superscript = True 6

Wstawianie wzorów i funkcji: Występujące we wzorach symbole oznaczają odpowiednio: R wiersz C kolumna R[-2] dwa wiersze w górę C[-5] pięć kolumn w lewo B14: =B12+B13/10000 Range("B14").ActiveCell.FormulaR1C1 = "=R[-2]C+R[-1]C/10000" E10: =SUMA(E4:E9) Range("E10").ActiveCell.FormulaR1C1 = "=SUM(R[-6]C:R[-1]C)" F14: =PIERWIASTEK(F10/(A9-1)) Range("F14").ActiveCell.FormulaR1C1 = "=SQRT(R[-4]C/(R[-5]C[-5]-1))" F15: =F14/pierwiastek(A9) Range("F15").ActiveCell.FormulaR1C1 = "=R[-1]C/SQRT(R[-6]C[-5])" C4: =(B4 - $B$12)*10000 Range("C4").ActiveCell.FormulaR1C1 = "=(RC[-1]-R12C2)*10000" 7

Kopiowanie wzorów Wzór z pola C4 kopiujemy do pól C4:C9: Selection.AutoFill Destination:=Range("C4:C9"), Type:=xlFillDefault Zmiana arkusza: Zmiana na Arkusz2 Sheets("Arkusz2").Select Rysowanie ramek: W celu narysowania ramek zaznaczamy wybrany obszar arkusza, a następnie rysujemy ramki zewnętrzne i linie wewnętrzne: Rodzaje linii: linia ciągła (.LineStyle = xlcontinuous), linia kropkowana (.LineStyle = xldot), linia kreskowana (.LineStyle = xldash) linia kreska-kropka (.LineStyle = xldashdot) linia kreska-kropka-kropka (.LineStyle = xldashdotdot) linia podwójna (.LineStyle = xldouble) Grubości linii gruba (.Weight = xlthick), średnia(.weight = xlmedium), cienka(.weight = xlthin), 8

Zaznaczenie obszaru: Range("A3:F9").Select Rysowanie linii zewnętrznych: - lewa ramka (xledgeleft) With Selection.Borders(xlEdgeLeft).LineStyle = xlcontinuous.weight = xlthick - górna ramka (xledgetop) With Selection.Borders(xlEdgeTop).LineStyle = xlcontinuous.weight = xlthick - dolna ramka (xledgebottom) With Selection.Borders(xlEdgeBottom).LineStyle = xlcontinuous.weight = xlthick - prawa ramka (xledgeright) With Selection.Borders(xlEdgeRight).LineStyle = xlcontinuous.weight = xlthick Linie wewnętrzne: - linie pionowe (xlinsidevertical) With Selection.Borders(xlInsideVertical).LineStyle = xlcontinuous.weight = xlthin 9

- linie poziome (xlinsidehorizontal) With Selection.Borders(xlInsideHorizontal).LineStyle = xlcontinuous.weight = xlmedium JeŜeli rysujemy ramki linią ciągłą (jest to parametr domyślny) i zmieniamy np. tylko grubości, moŝemy to wszystko zapisać krócej: Range("A3:F9").Select With Selection.Borders(xlEdgeLeft).Weight = xlthick.borders(xledgetop).weight = xlthick.borders(xledgebottom).weight = xlthick.borders(xledgeright).weight = xlthick.borders(xlinsidevertical).weight = xlthin.borders(xlinsidehorizontal). Weight = xlmedium Ochrona arkusza: Zaznaczamy pola które nie mają być chronione pola do wpisywania danych: 10

W polach B4:B9 będziemy wpisywać dane, a więc obszar ten nie moŝe być zablokowany ani ukryty. Range("B4:B9").Select Selection.Locked = False Selection.FormulaHidden = False Następnie włączamy ochronę całego arkusza: ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Ewentualnie wprowadzone hasło nie jest zapisywane w programie. UŜytkownik musi je podać ręcznie. 11

4. Przykład programu obliczenie średniej arytmetycznej Program pyta na początku o liczbę wartości do wyrównania: Następnie program przygotowuje formularz do obliczenia średniej arytmetycznej, oraz oceny jej dokładności dostosowany do podanej liczby spostrzeŝeń. Wzory i tok obliczeń zostały omówione wcześniej przy ręcznym tworzeniu formularza dla średniej arytmetycznej. 12

Sub srednia() '**************** WYCZYSZCZENIE ZAWARTOŚCI ARKUSZA ***** ActiveSheet.Unprotect Range("A2:F30").Select Selection.Delete Shift:=xlUp '**************** WSTAWIENIE TYTUŁU ******************* Range("B1").Select Selection.Font.Bold = True Selection.Font.Italic = True ActiveCell.FormulaR1C1 = "Obliczenie średniej arytmetycznej" '******************* PYTANIE O LICZBĘ POMIARÓW ***************** Range("C2").Select liczba = InputBox("Podaj liczbe wartości do uśrednienia") lis = Trim(Str(liczba)): Str zamiana liczby na string; Trim usuwanie zbędnych spacji '****************** WSTAWIANIE OPISÓW TABELKI *********************** Range("A3").ActiveCell.FormulaR1C1 = "Nr" Range("B3").ActiveCell.FormulaR1C1 = "L" Range("C3").ActiveCell.FormulaR1C1 = "l" Range("D3").ActiveCell.FormulaR1C1 = "v" Range("E3").ActiveCell.FormulaR1C1 = "vv" Range("A4").ActiveCell.FormulaR1C1 = "1" Range("A5").ActiveCell.FormulaR1C1 = "2" Range("A3:E3").Select: Selection.HorizontalAlignment = xlcenter '***************** WSTAWIANIE NUMERÓW POMIARÓW ******************** ls = Trim(Str(liczba + 3)) ra = "A4:A" + ls Range("A4:A5").Select Selection.AutoFill Destination:=Range(ra), Type:=xlFillDefault Range(ra).Select: Selection.HorizontalAlignment = xlcenter '********** WSTAWIANIE NAPISU Xmin ***************** r3 = "A" + Trim(Str(liczba + 5)) Range(r3).Select Selection.Font.Bold = True ActiveCell.FormulaR1C1 = "xmin=" With ActiveCell.Characters(Start:=2, Length:=3).Font.Subscript = True Selection.HorizontalAlignment = xlright '*********** WSTAWIANIE NAPISU DELTA X ************** r4 = "A" + Trim(Str(liczba + 6)) Range(r4).Select Selection.Font.Bold = True ActiveCell.FormulaR1C1 = "Dx=" With ActiveCell.Characters(Start:=1, Length:=1).Font.Name = "Symbol" Selection.HorizontalAlignment = xlright 13

'********* WSTAWIANIE NAPISU X= ********************** r5 = "A" + Trim(Str(liczba + 7)) Range(r5).Select Selection.Font.Bold = True ActiveCell.FormulaR1C1 = "X=" Selection.HorizontalAlignment = xlright '********** OBLICZENIE Xmin I NADANIE NAZWY Xmin ************************ r3 = "B" + Trim(Str(liczba + 5)) Range(r3).Select ActiveCell.FormulaR1C1 = "=MIN(R[-7]C:R[-2]C)" ActiveWorkbook.Names.Add Name:="xmin" RefersToR1C1:="=Arkusz1!R" + Trim(Str(liczba + 5)) + "C2" '*********** FORMATOWANIE PÓL Z DANYMI ****************** rb = "B4:B" + Trim(Str(liczba + 5)) Range(rb).Select Selection.NumberFormat = "0.00" Selection.HorizontalAlignment = xlright Range("B4").Select '*********** OBLICZANIE WARTOŚCI l ********************* Range("C4").ActiveCell.FormulaR1C1 = "=(RC[-1]-xmin)*100" rc = "C4:C" + Trim(Str(liczba + 3)) Range("C4").Select Selection.AutoFill Destination:=Range(rc), Type:=xlFillDefault '********** OBLICZANIE SUMY l *************************** Range("C" + Trim(Str(liczba + 4))).Select ActiveCell.FormulaR1C1 = "=SUM(R[-" + lis + "]C:R[-1]C)" '********* OBLICZENIE DELTA X ****************** rb = "B" + Trim(Str(liczba + 6)) Range(rb).Select ActiveCell.FormulaR1C1 = "=R[-2]C[1]/" + lis ActiveWorkbook.Names.Add Name:="dx", RefersToR1C1:="=Arkusz1!R" + Trim(Str(liczba + 6)) + "C2" '********** OBLICZENIE X ************************ rb = "B" + Trim(Str(liczba + 7)) Range(rb).Select ActiveCell.FormulaR1C1 = "=R[-2]C+R[-1]C/100" '********** FORMATOWANIE PÓL Dx i X ****************** rb = "B" + Trim(Str(liczba + 6)) + ":B" + Trim(Str(liczba + 7)) Range(rb).Select Selection.NumberFormat = "0.00" Selection.HorizontalAlignment = xlright '*********** OBLICZENIE V ********************** Range("D4").Select: ActiveCell.FormulaR1C1 = "=(dx-rc[-1])" rd = "D4:D" + Trim(Str(liczba + 3)) Range("D4").Select Selection.AutoFill Destination:=Range(rd), Type:=xlFillDefault 14

'************ OBLICZENIE SUMY V ************************** Range("D" + Trim(Str(liczba + 4))).Select ActiveCell.FormulaR1C1 = "=SUM(R[-" + lis + "]C:R[-1]C)" '*********** OBLICZENIE VV ************************* Range("E4").Select: ActiveCell.FormulaR1C1 = "=RC[-1]^2" re = "E4:E" + Trim(Str(liczba + 3)) Range("E4").Select Selection.AutoFill Destination:=Range(re), Type:=xlFillDefault '************ OBLICZENIE SUMY VV ********************** Range("E" + Trim(Str(liczba + 4))).Select ActiveCell.FormulaR1C1 = "=SUM(R[-" + Trim(Str(liczba)) + "]C:R[-1]C)" '************ FORMATOWANIE PÓL V I VV ****************** rb = "D4:E" + Trim(Str(liczba + 4)) Range(rb).Select Selection.NumberFormat = "0.00" Selection.HorizontalAlignment = xlright '************ WSTAWIANIE NAPISÓW m= i mx = *********************** rd = "D" + Trim(Str(liczba + 6)) Range(rd).Select: ActiveCell.FormulaR1C1 = "m =" Selection.HorizontalAlignment = xlright rd = "D" + Trim(Str(liczba + 7)) Range(rd).Select ActiveCell.FormulaR1C1 = "mx =" ActiveCell.Characters(Start:=2, Length:=1).Font.Subscript = True Selection.HorizontalAlignment = xlright '************ OBLICZANIE WARTOŚCI m= i mx = *********************** re = "E" + Trim(Str(liczba + 6)) Range(re).Select ActiveCell.FormulaR1C1 = "=SQRT(R[-2]C/" + Trim(Str(liczba - 1)) + ")" re = "E" + Trim(Str(liczba + 7)) Range(re).Select: ActiveCell.FormulaR1C1 = "=R[-1]C/SQRT(" + lis + ")" '************ FORMATOWANIE PÓL m i mx ****************************** rb = "E" + Trim(Str(liczba + 6)) + ":E" + Trim(Str(liczba + 7)) Range(rb).Select Selection.NumberFormat = "0.0" 15

'**************** RYSOWANIE RAMEK ********************************* r2 = "A3:E" + ls Range(r2).Select With Selection.Borders(xlEdgeLeft).Weight = xlthick.borders(xledgetop).weight = xlthick.borders(xledgebottom).weight = xlthick.borders(xledgeright).weight = xlthick.borders(xlinsidevertical).weight = xlthin.borders(xlinsidehorizontal).weight = xlthin '******** ZAZNACZENIE PÓL NIECHRONIONYCH ********** rb = "B4:B" + ls Range(rb).Select Selection.Locked = False Selection.FormulaHidden = False Selection.Interior.ColorIndex = 27 '*********** WŁĄCZENIE OCHRONY ARKUSZA ************** ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Range("B4").Select End Sub Po wykonaniu programu otrzymujemy gotowy formularz, do którego dane wpisujemy w polach zaznaczonych Ŝółtym kolorem.interior.colorindex = 27 (pozostałe pola są chronione). 16

5.Obliczenie pola wieloboku ze współrzędnych wzorami Gaussa: 2P = n i= 1 X i Y i+ 1 X i+ 1 Y i 17

Public Sub pola() ************ wyczyszczenie arkusza **************** Range("A2:F30").Select Selection.Delete Shift:=xlUp ************* wstawienie tytułu ******************** Range("B1").Select Selection.Font.Bold = True Selection.Font.Italic = True ActiveCell.FormulaR1C1 = "Obliczenie pola działki ze współrzędnych" ************** pytanie o liczbę punktów ****************** Range("C2").Select liczba = InputBox("Podaj liczbę punktów na obwodzie działki") ************* opisy nagłówków tabeli *********************** Range("B3").Select Selection.Font.Bold = True ActiveCell.FormulaR1C1 = "X" Selection.HorizontalAlignment = xlcenter Range("C3").Select Selection.Font.Bold = True ActiveCell.FormulaR1C1 = "Y" Selection.HorizontalAlignment = xlcenter '*********** RYSOWANIE RAMEK ************************ r1 = Trim(Str(liczba + 4)) rr = "A3:C" + r1 Range(rr).Select With Selection.Borders(xlEdgeLeft).Weight = xlthick.borders(xledgetop).weight = xlthick.borders(xledgebottom).weight = xlthick.borders(xledgeright).weight = xlthick.borders(xlinsidevertical).weight = xlthin.borders(xlinsidehorizontal).weight = xlthin 18

******** dopisywanie na końcu tabeli pierwszego punktu ********* Range("A" + r1).activecell.formular1c1 = "=R4C1" Range("B" + r1).activecell.formular1c1 = "=R4C2" Range("C" + r1).activecell.formular1c1 = "=R4C3" ****************** wstawianie napisu: P= r2 = Trim(Str(liczba + 6)) Range("A" + r2).select: ActiveCell.FormulaR1C1 = "P=" Selection.HorizontalAlignment = xlright ************ wstawianie wzoru Gaussa *************** Range("P5").Select ActiveCell.FormulaR1C1 = "=R[-1]C[-14]*RC[-13]-RC[-14]*R[-1]C[-13]" ********* kopiowanie wzoru Gaussa do następnych wierszy arkusza ** rd = "P5:P" + r1 Range(rd).Select Selection.AutoFill Destination:=Range(rd), Type:=xlFillDefault ****** obliczanie sumy składników wzoru Gaussa *************** Range("P" + r2).select ActiveCell.FormulaR1C1 = "=SUM(R[-" + r1 + "]C:R[-2]C)" ******** wstawianie wyniku ****************************** Range("B" + r2).select: ActiveCell.FormulaR1C1 = "=ABS(RC[14])/2" End Sub 19