Makro1

Makro

  1. Stwórz makro, które będzie wyłączać siatkę.

  1. Włączamy zarejestruj makro (np. za pomocą dewelopera, lub z paska na dole arkusza, lub z zakładki Widok). Nadajemy mu nazwę BezSiatki() i przypisujemy klawisze skrótu – CTRL przypisywany jest automatycznie wciskamy SHIFT + H. Należy pamiętać, że nazwę należy nadać bez spacji.

  2. Przechodzimy do zakładki Widok i odznaczamy linie siatki:

  3. Zatrzymujemy makro.

  1. Stwórz makro, które będzie włączać siatkę.

  1. Włączamy zarejestruj makro. Nadajemy mu nazwę JestSiatka() i przypisujemy klawisze skrótu – CTRL przypisywany jest automatycznie wciskamy SHIFT + J.

  2. Przechodzimy do zakładki i zaznaczamy linie siatki, które do tej pory były wyłączone.

  3. Zatrzymujemy rejestrację makra.

Teraz uruchamiając na zmianę te makra, będziemy włączać i wyłączać linie siatki.

  1. Stwórz przyciski uruchamiające makra BezSiatki i JestSiatka.

  1. Wstawiamy kształt np.

  2. Wpisujemy tekst Bez Siatki.

  3. Wciskamy prawy przycisk myszy na wstawionym kształcie.

  4. Z menu wybieramy Przypisz makro…. Wybieramy makro BezSiatki.

  5. Analogicznie tworzymy przycisk Jest siatka.

Teraz naciskając przyciski możemy uruchamiać nasze makra na zmianę, a co za tym idzie włączać i wyłączać linie siatki.

  1. Stwórz makro i odpowiedni przycisk je uruchamiające, które będzie w zależności od sytuacji włączać lub wyłączać linie siatki (tzn. jeżeli są to wyłączy, jeżeli nie ma to włączy).

Tym razem nie będziemy nagrywać makra tylko je pisać.

  1. Przechodzimy do edycji makr.

  2. Otworzy się okno:

Przyjrzyjmy się Makrą, które wcześniej nagraliśmy.

Każde makro zaczyna się słowem kluczowym Sub potem jest jego nazwa. Potem następuje opis makra oraz ewentualne przypisane skróty. Wprowadzenie w tym miejscu zmian nie wpływa na makro. (tekst ten jest na zielono). Polecenia makra wyświetlane są w kolorze czarnym. Wprowadzenie w tym miejscu zmian powoduje zmiany w makrze. Koniec makra oznaczone jest End Sub.

ActivWindow.DisplayGridlines to zmienna, która jest odpowiedzialna za linie siatki w aktywnym oknie. Jeżeli przypiszemy jej wartość false (ActiveWindow.DisplayGridlines = False) zostaną wówczas wyłączone linie siatki. Przypisanie jej wartość true przeciwnie włącza linie siatki.

  1. Przekopiujmy jedno z naszych makr. Zmieńmy mu nazwę na PrzełączaSiatkę().

  2. Zmodyfikujmy polecenie na:

ActiveWindow.DisplayGridlines = Not ActiveWindow.DisplayGridlines

Tak zbudowane polecenie zmienia naszej zmiennej stan na przeciwny (tzn, jeżeli była true to zmienia na false lub odwrotnie jeżeli była false zmienia na true).

  1. Wstawiamy kształt i przypisujemy mu nasze napisane makro PrzełączaSiatkę.

  1. Stwórz makro, w którym będą wpisywane teksty oraz wykonywane formuły. Zgodnie z tabelą:

  1. Włączamy makro. Nazywamy je input1.

Wpisujemy kolejno:

  1. A1 – Dzisiaj jest:

  2. A2 – f ormuła: = DZIŚ(). Formatujemy komórkę jako dddd

  1. A3 – tekst Anno Domini:

  2. A4 – formuła: = TERAZ(). Format komórki rrrr

  3. A5 – Tekst – Liczba losowa 0 – 1

  4. A6 – formuła =LOS()

  5. A7 – tekst – liczba losowa 1 – 10

  6. A8 – formuła : =LOS()*(10-1)+1

  7. A9 – liczba 1,5

  8. A10 – liczba 1.5

  9. A11 – Tekst – Miłego dnia!

  10. Wyłączamy zapisywanie makra.

W edytorze makra nasze maro ma postać:

Sub input1()

'

' input1 Makro

' Wprowadzanie tekstu, formuł, liczb, funkcji, daty

'

Range("A1").Select

ActiveCell.FormulaR1C1 = "Dzisiaj jest:"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "=TODAY()"

ActiveCell.Select

Selection.NumberFormat = "dddd"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Anno Domini:"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "=NOW()"

ActiveCell.Select

Selection.NumberFormat = "yyyy"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Liczba losowa 01"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "=RAND()"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "liczba losowa 1-10"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "=RAND()*(10-1)+1"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "1.5"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "1.5"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Miłego dnia!"

ActiveCell.Offset(1, 0).Range("A1").Select

End Sub

Makro to wykonuje się zawsze począwszy od komórki A1. Jeżeli chcemy, aby wykonywało się z dowolnego miejsca musimy je nieco zmodyfikować.

  1. Zmodyfikuj makro input1 tak aby wykonywało się począwszy od komórki aktualnie podświetlonej. Zmień format komórki z dniem na ddd. Dodatkowo wstaw komórkę z tekstem 1.5.

  1. Kopiujemy makro input1.

  2. Zmieniamy nazwę na input2.

  3. Usuwamy pierwszą linijkę (tj. Range("A1").Select)

  4. Makro powinno mieć kod jak poniżej:

Sub input2()

'

' input2 Makro

'

ActiveCell.FormulaR1C1 = "Dzisiaj mamy:"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "=TODAY()"

ActiveCell.Select

Selection.NumberFormat = "ddd"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Anno Domini"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "=NOW()"

ActiveCell.Select

Selection.NumberFormat = "yyyy"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Liczba losowa"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "=RAND()"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Liczba losowa"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "=RAND()*(10-1)+1"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "1.5"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "1.5"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "'1.5'"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Miłego dnia!"

End Sub

Na czerwono zaznaczone są zmiany.

  1. Stwórz makro, które będzie kolorować zaznaczony obszar.

  1. Włączamy rejestrację makra. Nazywamy je Kolor0.

  2. Zaznaczamy obszar który ma być wypełnione kolorem.

  3. Wybieramy kolor wypełnienia czerwony.

  4. Wyłączamy rejestrację.

Otrzymane makro ma kod:

Sub Kolor0()

'

' Kolor1 Makro

' malowanie koloru

Range("B2:D7").Select

With Selection.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.Color = 255

.TintAndShade = 0

.PatternTintAndShade = 0

End With

End Sub

Powyższe makro koloruje zawsze ten sam obszar. Jeżeli chcemy, aby makro kolorowało dowolny obszar zaznaczony wcześniej przez nas należy zmodyfikować poprzez wyłaczenie pierwszej linii poleceń tzn. Range("B2:D7").Select.

  1. Makro to jest dość rozbudowane w kodzie. Wynika to z tego, że kolor został wybrany z palety kolorów. Spróbujmy napisać makro, które będzie kolorować wybrany obszar w dowolny zdefiniowany przez nas kolorze.

Takie makro możemy uzyskać w następujący sposób:

Sub kolor3()

Selection.Interior.ColorIndex = 3

End Sub

Liczba 3 oznacza kolor. Możemy oczywiście użyć innej w zakresie do 56.

  1. Napisz makro, które będzie czyściło zaznaczony obszar.

  1. Aby wyczyścić zaznaczony obszar wystarczy je zamalować kolorem białym. Kolor ten ma numer 0.

  2. Piszemy makro czyść, które będzie analogiczne do makra z zadania poprzedniego.

  3. Kopiujemy makro kolor3

  4. Zmieniamy mu nazwę na czyść.

  5. Zmieniamy numer koloru na 0.

  6. W arkuszu wstawiamy kształt do którego przypisujemy nasze makro.

  1. Napisz makro, które będzie malowało zaznaczony obszar na kolor, który mu podamy. (będzie zadawało pytanie w jakim kolorze ma być obszar).

  1. Kopiujemy kod makra kolor3.

  2. Zmieniamy mu nazwę na kolorX.

  3. Modyfikujemy kod w następujący sposób:

Sub kolorX()

Kolor1 = InputBox("podaj numer(0-56) koloru")

Selection.Interior.ColorIndex = Kolor1

End Sub

W powyższym makro definiujemy nową zmienną kolor1, która zwraca wybór użytkownika (wyświetli się pole z pytaniem : podaj numer (0-56) koloru. Uzyskujemy to za pomocą funkcji InputBox). Obszar zostanie pomalowany na kolor, który zostanie wpisany w polu z pytaniem.

  1. Stwórz makro, które pomaluje sześć kolejnych komórek w kolorach o numerach od 3 do 8.

  1. Kopiujemy makro kolor3

  2. Zmieniamy nazwę na maluj1.

  3. Następnie kopiujemy polecenie Selection.Interior.ColorIndex = 3.

  4. Między skopiowane linie wpisujemy polecenie ActiveCell.Offset(1, 0).Select.

  5. Zmieniamy numer koloru na kolejny.

  6. Kopiujemy dwie ostatnie linie odpowiednią ilość razy i zmieniamy numery tak aby otrzymać makro:

Sub maluj1()

ActiveCell.Interior.ColorIndex = 3

ActiveCell.Offset(1, 0).Select

ActiveCell.Interior.ColorIndex = 4

ActiveCell.Offset(1, 0).Select

ActiveCell.Interior.ColorIndex = 5

ActiveCell.Offset(1, 0).Select

ActiveCell.Interior.ColorIndex = 6

ActiveCell.Offset(1, 0).Select

ActiveCell.Interior.ColorIndex = 7

ActiveCell.Offset(1, 0).Select

ActiveCell.Interior.ColorIndex = 8

End Sub

Polecenie ActiveCell.Offset(1, 0).Select

działa w następujący sposób. Przesuń się w dół o 1 komórkę od obecnie aktywnej i zaznacz ją.

Makro kończy się jeżeli mamy pomalowanych 6 komórek na sześć kolorów. Aktywna jest ostatnia.

  1. Stwórz makro tak jak w zadaniu poprzednim z tą jednak różnicą, że nie zmieniać się będzie aktywna komórka.

  1. Kopiujemy makro maluj1.

  2. Zmieniamy mu nazwę na maluj2.

Wprowadzamy zmiany poprzez zmiany w poleceniu ActiveCell.Offset(1, 0).Select

ActiveCell.Interior.ColorIndex = 5

Poprzez usunięcie polecenia select. Makro powinno mieć postać:

Sub maluj2()

ActiveCell.Interior.ColorIndex = 3

ActiveCell.Offset(1, 0).Interior.ColorIndex = 4

ActiveCell.Offset(2, 0).Interior.ColorIndex = 5

ActiveCell.Offset(3, 0).Interior.ColorIndex = 6

ActiveCell.Offset(4, 0).Interior.ColorIndex = 7

ActiveCell.Offset(5, 0).Interior.ColorIndex = 8

End Sub

Na czerwono zaznczone są zmiany.(oprócz usunięcia select).

  1. Makro ma działać tak jak w poprzednim zadaniu, wykonywane ma być jednak poprzez wprowadzenie zmiennej w kodzie.

  1. Kopiujemy makro maluj2

  2. Zmieniamy nazwę na maluj3.

  3. Wprowadzamy zmienną kolorek1.

  4. Przypisujemy zmiennej wartość 3.

  5. Następnie kolejne kolory otrzymujemy poprzez dodanie 1, 2, 3, 4, 5 do naszej zmiennej.

Makro powinno mieć postać:

Sub maluj3()

kolorek1 = 3

ActiveCell.Interior.ColorIndex = kolorek1

ActiveCell.Offset(1, 0).Interior.ColorIndex = kolorek1 + 1

ActiveCell.Offset(2, 0).Interior.ColorIndex = kolorek1 + 2

ActiveCell.Offset(3, 0).Interior.ColorIndex = kolorek1 + 3

ActiveCell.Offset(4, 0).Interior.ColorIndex = kolorek1 + 4

ActiveCell.Offset(5, 0).Interior.ColorIndex = kolorek1 + 5

End Sub

  1. Napisz makro, które będzie kolorować kolejne komórki na 56 kolorów.

To zadanie wykonamy za pomocą pętli for.

  1. Definujemy zmienną kolorek1 jako 1(kolor nr1)

  2. Malujemy pierwszą komórkę na kolorek1

  3. Definiujmey pętlę w następujący sposób

For i = 1 To 55

ActiveCell.Offset(i, 0).Interior.ColorIndex = kolorek1 + i

Next i

Co oznacza przyjmując za i kolejne liczby od 1 do 55 wykonuj następujące polecenie :

W komórce o i w dół wprowadź kolor o numerze o i zwiększonym do tego jaki jest w aktywnej komórce (czyli 1).

Całe makro powinno mieć postać:

Sub maluj4()

kolorek1 = 1

ActiveCell.Interior.ColorIndex = kolorek1

For i = 1 To 55

ActiveCell.Offset(i, 0).Interior.ColorIndex = kolorek1 + i

Next i

  1. End Sub.


Wyszukiwarka

Podobne podstrony:
makro1 ko
makro14 25XPFSQX5USTK6P25AQ6RPLJ4BZVFQTH4W5TQIA
makro13 CG355HUN3UHMNM4TIIG4NNJI5CRDT3RR27AXVMQ
makro1, rachunek dochodu narodowego
Makro1
Makro1
makro1 gospodarka otwarta
Makro14 , XII
makro1, model keynesa
Makro15 , XIII
Test makro1, studia, Makroekonomia
makro1
makro12
makro1 02 www
makro1 inflacja
Makro1, Studia, Makroekonomia
makro1, Makroekonomia
Wykład, Makroekonomia I, Czarny, makroICzarny, czarny makro1, makro
makro1.5
Makro1

więcej podobnych podstron