Zachodniopomorski uniwersytet technologiczny instytut technologii mechanicznej



Pobieranie 366.54 Kb.
Strona8/9
Data28.04.2016
Rozmiar366.54 Kb.
1   2   3   4   5   6   7   8   9

Ćwiczenie 9


Zagadnienia:

Ćwiczenie to dotyczy planu zajęć dla kierunków niestacjonarnych na Wydziale Inżynierii Mechanicznej i Mechatroniki (dawniej Wydziału Mechanicznego) ZUT. Plan ten przedstawiony jest na rysunku na stronie następnej. Odpowiedni arkusz z planem w Excelu należy pobrać z zasobu wskazanego przez prowadzącego ćwiczenia. Pobrany arkusz z planem powinien być niepokolorowany. Zakres kilku komórek pod napisem Oznaczenia należy w Excelu nazwać legenda, zaś duży pokolorowany na rysunku zakres nad napisem Oznaczenia należy nazwać plan.


Zadanie 1.
Celem zadania jest pokolorowanie planu zajęć za pomocą makra w taki sposób, aby różne przedmioty były pokolorowane różnymi kolorami zgodnie ze schematem kolorów ustawionym w legendzie (por. rys.). Główny problem, który należy rozwiązać to znaleźć metodę rozpoznawania komórki na planie na podstawie oznaczenia w legendzie. Na przykład, każdy bez problemu oceni, że napis MATL SWZ na planie odpowiada w legendzie napisowi MAT, który określa przedmiot Materiałoznawstwo, a nie odpowiada np. napisowi MT określającemu Mechanikę techniczną I. Problem ten w VBA można sprowadzić do napisania funkcji o nagłówku:
Function zgodne_napisy(kom_legenda As Range, _
kom_plan As Range) As Boolean
gdzie kom_legenda i kom_plan oznaczają odpowiednio komórkę legendy i planu. Funkcja zgodne_napisy ma odpowiedzieć na pytanie (FALSE albo TRUE) czy komórka w legendzie odpowiada komórce na planie. Przy opracowaniu tej funkcji można wykorzystać fakt, że napis na planie tworzony jest w ten sposób, że do oznaczenia przedmiotu z legendy dodawana jest litera W,L lub C (wykład, laboratorium, ćwiczenia) czasem napis W/C, ale zawsze w indeksie dolnym. Można zatem poszukać pierwszego znaku, który jest w indeksie dolnym i porównać napis znajdujący się przed tym znakiem z napisami w legendzie. Aby sprawdzić cz k-ty znak jest w indeksie dolnym należy sprawdzić czy właściwość:

….Characters(Start:=k, Length:=1).Font.Subscript

ma wartość True. Po napisaniu tej funkcji można ją przetestować w Excelu.

Funkcję tę następnie należy wykorzystać w makrze kolorowania, które powinno sprawdzać pary: komórka na planie i komórka legendy i ewentualnie kopiować kolor wnętrza komórki legendy do komórki na planie.





Zadanie 2.
Celem zadania jest napisanie makra, które wygeneruje w Arkusz 2 tabelę, której początek przedstawiony jest na rysunku poniżej.


Data

Dzień

Od

Do

Przedmiot

Rodzaj zajęć

Sala

3.03.2007

sobota

10:00

12:30

Finanse firm transportowych

W

205

3.03.2007

sobota

12:30

14:10

Mechanika techniczna I

W

205

3.03.2007

sobota

14:10

16:40

Matematyka II

W

205

3.03.2007

sobota

16:40

18:20

Grafika inżynierska II

W

329

4.03.2007

niedziela

08:00

10:30

Matematyka II

C

205

4.03.2007

niedziela

10:30

13:00

Mechanika techniczna I

W

205

4.03.2007

niedziela

13:00

15:30

Finanse firm transportowych

C

205

10.03.2007

sobota

10:00

12:30

Matematyka II

W

205

10.03.2007

sobota

12:30

14:10

Informatyka II

W

301

10.03.2007

sobota

14:10

16:40

Informatyka II

L

104/121

11.03.2007

niedziela

08:00

10:30

Matematyka II

C

205

11.03.2007

niedziela

10:30

12:10

Mechanika techniczna I

C

329

11.03.2007

niedziela

12:10

13:50

Grafika inżynierska II

W




11.03.2007

niedziela

13:50

15:30

Grafika inżynierska II

P

10

24.03.2007

sobota

10:00

11:40

Mechanika techniczna I

W

50

24.03.2007

sobota

11:40

13:20

Mechanika techniczna I

C

50

24.03.2007

sobota

13:20

16:40

Elektrotechnika i elektronika

L

BMW SWZ

Zadanie to podzielimy na kilka mniejszych zadań cząstkowych.




    1. Napisz funkcję o nagłówku:

Function szer(kom_plan As Range) As Integer


która podaje ilość godzin zajęć na podstawie ilości scalonych w Excelu komórek.


  1. Napisz funkcję o nagłówku:

Function nazwa_przedmiotu(kom As Range, _


legenda As Range) As String
która podaje nazwę przedmiotu na podstawie oznaczenia w komórce kom na planie wykorzystując dane z zakresu legenda. Dane z zakresu, w którym są nazwy przedmiotów można pobrać stosując właściwość Offset do zakresu legenda.


  1. Napisz funkcję o nagłówku:

Function rodzaj_zajęć(kom As Range) As String


która podaje oznaczenie rodzaju zajęć: W -wykład, Llaboratoria, C - ćwiczenia itd.


  1. Napisz funkcję o nagłówku:

Function dodaj_dwukropek(s As String) As String


Funkcja ta powinna zamieniać format czasu zapisany niestandardowo w Excelu w postaci ggmm na format gg:mm. Ponieważ tekst w komórce jako właściwość Value nie ma formatu więc funkcja powinna zamienić np. napis ”1050” na ”10:50”.


  1. Napisz funkcję o nagłówku:

Function sala_zajęć(kom As Range) As String


która podaje oznaczenie sali, w której odbywają się zajęcia.


  1. Napisz funkcję tablicową o nagłówku:

Function czas_zajęć(kom_plan As Range, plan As Range)


Funkcja ta powinna podać w postaci tablicy 2-elementowej czas rozpoczęcia i zakończenia zajęć określonych przez komórkę na planie kom_plan .


  1. Napisz funkcję tablicową o nagłówku:

Function data_zajęć(kom_plan As Range, plan As Range)


Funkcja ta powinna podać w postaci tablicy 2-elemntowej datę zajęć i dzień tygodnia (sobota/niedziela) zajęć określonych przez komórkę na planie kom_plan .


  1. Jako ostatni element należy napisać makro twórz_tabelę, które przebiegając wszystkie komórki na planie wypisze tabelę w Arkusz 2 zgodnie z podanym wzorem. Makro to powinno wykorzystywać funkcje opisane w punktach 1 - 7.


Zadanie 3


    Zaprojektuj formularz, który po uruchomieniu wygląda tak jak na rysunku poniżej. W formularzu osadzone są dwa pola typu listbox i etykieta. Formularz po kliknięciu na wybraną datę powinien wyświetlić w drugim oknie listę zajęć, które odbywają się w danym dniu z podaniem godziny rozpoczęcia i zakończenia zajęć, nazwy przedmiotu i rodzaju zajęć. Poza tym w etykiecie powinien być pokazany dzień tygodnia i wybrana data. Wykorzystaj funkcje opracowane w zadaniu 2.




1   2   3   4   5   6   7   8   9


©absta.pl 2016
wyślij wiadomość

    Strona główna