Galeria jest być może najbardziej efektowną kontrolką jaką możemy umieścić na karcie wstążki. Jest rozwinięciem listy rozwijanej i świetnie sprawdza się gdy mamy do wyboru multum opcji. Możemy wgrywać własne obrazki i sterować ilością wierszy i kolumn. Jak stworzyć taką galerię? O tym dowiesz się z tego artykułu.
Galeria czy lista?
W poprzedniej notce opisałem w jaki sposób zaprojektować listę rozwijaną z własną grafiką.
Kontrolka dropdown świetnie realizuje to zadanie, ale ma jedną wadę. Nie sprawdza się tak dobrze, gdy danych na liście jest więcej. Powód jest prosty – znalezienie właściwego wpisu jest utrudnione i tracimy przez to czas.
W takiej sytuacji, na pomoc przychodzi galeria. Ta efektowna kontrolka pozwala wyświetlić dane w formie obrazków. Liczbę wierszy i kolumn ustalamy samodzielnie, podobnie jak wielkość miniaturek.
Obie kontrolki pozwalają niewątpliwe wzbogacić interfejs aplikacji EXCEL/VBA.
Flagi krajów UE
W poniższym przykładzie galeria wyświetla nazwy i flagi krajów należących do Unii Europejskiej. Po wybraniu jednego państwa – jego nazwa zaczytuje się do aktywnych komórek.
Kod XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
<group id="GrupaUniaEuropejskka" label="Kraje Unii Europejskiej"> <gallery columns="3" id="galKraje" image="UE_png" label="Wybierz kraj UE" rows="9" onAction="galKraje_onAction"> <item id="Austria" image="Austria_png" label="Austria"/> <item id="Belgia" image="Belgia_png" label="Belgia"/> <item id="Bułgaria" image="Bulgaria_png" label="Bułgaria"/> <item id="Cypr" image="Cypr_png" label="Cypr"/> <item id="Czechy" image="Czechy_png" label="Czechy"/> <item id="Dania" image="Dania_png" label="Dania"/> <item id="Estonia" image="Estonia_png" label="Estonia"/> <item id="Finlandia" image="Finlandia_png" label="Finlandia"/> <item id="Francja" image="Francja_png" label="Francja"/> <item id="Grecja" image="Grecja_png" label="Grecja"/> <item id="Hiszpania" image="Hiszpania_png" label="Hiszpania"/> <item id="Holandia" image="Holandia_png" label="Holandia"/> <item id="Irlandia" image="Irlandia_png" label="Irlandia"/> <item id="Litwa" image="Litwa_png" label="Litwa"/> <item id="Łotwa" image="Lotwa_png" label="Łotwa"/> <item id="Luksemburg" image="Luksemburg_png" label="Luksemburg"/> <item id="Malta" image="Malta_png" label="Malta"/> <item id="Niemcy" image="Niemcy_png" label="Niemcy"/> <item id="Polska" image="Polska_png" label="Polska"/> <item id="Portugalia" image="Portugalia_png" label="Portugalia"/> <item id="Rumunia" image="Rumunia_png" label="Rumunia"/> <item id="Słowacja" image="Slowacja_png" label="Słowacja"/> <item id="Słowenia" image="Slowenia_png" label="Słowenia"/> <item id="Szwecja" image="Szwecja_png" label="Szwecja"/> <item id="Węgry" image="Wegry_png" label="Węgry"/> <item id="Wielka_Brytania" image="Wielka_Brytania_png" label="Wielka Brytania"/> <item id="Włochy" image="Wlochy_png" label="Włochy"/> </gallery > </group > |
Makro VBA
Jak widać na obrazku powyżej, galeria spełnia swoją rolę. Skrypt dodający nazwę kraju do komórek arkusza wygląda tak:
1 2 3 4 5 6 7 8 9 10 |
Public Sub galKraje_onAction(control As IRibbonControl, selectedId As String, selectedIndex As Integer) ' ' Code for onAction callback. Ribbon control gallery If TypeOf Selection Is Excel.Range Then Selection.Value = Replace(selectedId, "_", " ") End If End Sub |