Efekt mouseover w Excelu

Efekt Mouseover

Posted on Posted in Dashboard

Przeglądając strony internetowe często napotkamy na charakterystyczny efekt, zwany potocznie Mouseover. Funkcjonalność ta pozwala na wywołanie graficznej zmiany, podczas ruchu kursorem myszki nad danym obiektem. Zakres możliwych do wyświetlenia zmiany ogranicza się wyłączenie do naszej wyobraźni. Możemy wywoływać zmianę kształtu, koloru czy też ruch danego obiektu. Ten sam efekt możemy również osiągnąć w Excelu. Trik najczęściej wykorzystany jest do zaznaczenia konkretnego pola w raporcie czy dashboardzie. W poniższych krokach przedstawię jak stworzyć obramowanie dla komórki, gdy najedziemy na nią kursorem myszki. Gotowy plik do pobrania tutaj.

 

1. Funkcja użytkownika VBA

Aby skorzystać z funkcjonalności Mouseover musimy zdefiniować funkcję użytkownika w module VBA. Otwieramy nowy skoroszyt z możliwością obsługi makr i wstawiamy moduł klikając PPM na Akrusz1 w w zakładce Project - VBAProject.

 

Wstawianie modułu do arkusza

 

W nowo powstałym module wpisujemy funkcję użytkownika.

Function MouseOver(Wiersz As Integer, Kolumna As _
Integer)
[BieżącyWiersz].Value = Wiersz
[BieżącaKolumna].Value = Kolumna
End Function

W powyższej funkcji MouseOver, nazwy podane w nawiasie kwadratowym BieżącyWiersz i BieżącaKolumna to nazwy zdefiniowane, które za moment utworzymy w Excelu. Nasza funkcja posiada dwa argumenty Wiersz i Kolumna o typie danych Integer. Obydwa argumenty będą równały się wartością z pól zdefiniowanych jako BieżącyWiersz oraz BieżącaKolumna, o właściwościach Value.

 

2. Połączenie funkcji HIPERŁĄCZE i funkcji użytkownika

Nim przejdziemy do połączenia funkcji HIPERŁĄCZE z naszą funkcją MOUSEOVER, zdefiniujemy wspomniane wcześniej nazwy. W komórce I2 wpisujemy BieżącyWiersz a komórkę niżej BieżącaKolumna. Korzystając z Menadżera nazw, w komórkach J2 i J3 tworzymy nazwy zdefiniowane o identycznych nazwach co kolumnę obok.

 

Nazwy zdefiniowane

 

Następnie tworzymy tablicę, w której podświetlane będzie obramowanie naszej komórki. Nagłówki wierszy i kolumn tablicy numerujemy liczbami od 1-5.

 

Miejsce gdzie powstanie efekt mouseover

 

Teraz przyszedł czas na gwóźdź programu. Za pomocą funkcji HIPERŁĄCZE utworzymy połączenie do funkcji MOUSEOVER. W komórce C5 wpisujemy formułę =HIPERŁĄCZE(MouseOver($B5;C$4)). Stworzona przez nas funkcja MOUSEOVER składa się z dwóch argumentów - wiersza i kolumny. Dane do funkcji pobierane są z nagłówków naszej tabeli. Dla kombinacji $B5;C$4 będzie to wiersz nr 1, kolumna nr 1. Komórki adresujemy tutaj z użyciem znaku "$", gdyż w przeciwnym wypadku stracilibyśmy informację o numerze wiersza czy kolumny, przeciągając formułę po naszej tablicy. Nałożenie na funkcję MOUSEOVER funkcji HIPERŁĄCZE skutkuje uaktualnianiem pól zdefiniowanych jako BieżącyWiersz i BieżącaKolumna. Pozostaje jeszcze ukrycie błędu #ARG!, którego możemy pozbyć się używając funkcji JEŻELI.BŁĄD. Całość powinna wyglądać następująco =JEŻELI.BŁĄD(HIPERŁĄCZE(MouseOver($B5;C$4));"")

 

Funkcja hiperłącze w powiązaniu z funkcją użytkownika.

 

3. Formatowanie warunkowe

Ostatnim krokiem na drodze do stworzenia efektu Mouseover, jest użycie formatowania warunkowego. Poniżej naszej tabelki z hiperłączem (Tabela 1) utwórzmy taką samą, również z numerami wierszy i kolumn (Tabela 2).

 

Tabela pomocnicza

 

W komórce C15 wpiszemy funkcję, która będzie śledziła ruch myszki w Tabeli nr 1. Wynikiem czego w Tabeli 2 pokarze się wartość "1" w miejscu równości adresu komórek wiersza i kolumny z Tabeli 2 i wcześniej zdefiniowanych nazw BieżącyWiersz i BieżącaKolumna. Funkcja wygląda następująco =--ORAZ($B15=BieżącyWiersz;C$14=BieżącaKolumna). Podwójny "--" przed nazwą funkcji logicznej powoduje, że zamiast wyniku PRAWDA/FAŁSZ otrzymujemy wynik 1/0.  W tym wypadku równie ważne jest zastosowanie adresowania połowicznie bezwzględnego.

 

Tabela do śledzenia hiperłącza

 

 

Kiedy mamy już przygotowaną Tabelę 2 przystępujemy do sformatowania Tabeli 1 tak aby podczas najechania kursorem na daną komórkę, jej obramowanie zabarwiało się na czerwono. W tym celu zaznaczamy (bez pól nagłówków) Tabelę 1, klikamy w grupie Style --> Formatowanie warunkowe --> Nowa reguła i wybieramy utworzenie reguły przy pomocy formuły. W polu Formatuj wartości wpisujemy funkcję =C15=1.

 

Nowa reguła formatowania

 

Klikamy przycisk Formatuj, w zakładce Obramowanie, wybieramy kolor - Czerwony, Akcent 2 oraz obramowanie komórki kontur. Wybór potwierdzamy klikając OK.

 

Wybór rodzaju formatowania komórki

 

Efekt Mouseover gotowy !

 

Efekt mouseover w Excelu

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *