Prezentacja danych.
Używając Excela w celach prezentacyjnych nadchodzi potrzeba zaprezentowania danych. Czasem wystarczy tylko pewne chwilowe wyodrębnienie danych informacji z tabeli. Załóżmy, że mamy małą tabelkę składającą się z 2 kolumna; nazwisk i sald kont. Jest w niej 4 ludzi, 2 Kowalskich i 2 Nowaków, chcemy, aby tabelka się przefiltrowała i wyświetliła tylko Nowaków.
1 2 3 4 5
| Range("B5:C9").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="nowak"
|
Powyższe makro z całej tabelki wyświetli tylko salda, które poprzedza nazwisko nowak. Jeśli chcemy przywrócić poprzedni stan, wyświetlania pełnej tabelki wystarczy wpisać coś takiego.
1 2 3 4
| Range("B5:C7").Select ActiveSheet.ShowAllData
|
Przedstawione tutaj funkcje dostępne są bezpośrednio z Excela, jednak czasami ich bezpośrednie wykorzystanie w makrach jest potrzebne, jeśli ma ono np. obliczyć jakąś sumę z podanego kryteria na czas obliczeń potrzebne są nam tylko dane wartości.
Dane można również zaprezentować w ciekawszej formie, jaką jest wykres. Ta kwestia jest dostępna również bezpośrednio z Excela, ale jeśli chcemy, aby wykres tworzył się dopiero po obliczeniach, dobrze wtedy było by wiedzieć jak. Nasz wykres ( w ty przypadku słupkowy) oprzemy o poprzedni przykład.
1 2 3 4 5 6 7 8 9 10 11 12
| Range("B5:C9").Select Charts.Add ActiveChart.ChartType = xlColumnStacked ActiveChart.SetSourceData Source:=Sheets("Arkusz1").Range("B5:C9"), PlotBy _ :=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Arkusz1" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "saldo" End With
|
Na samym początku obejmujemy obszar. Informujemy o dodaniu wykresu. Informujemy o typie wykresu. Podajemy dane oraz w jaki sposób maja być odczytane ( w tym przypadku orientacja kolumnowa). Ustalamy ulokowanie pojawiającego się wykresu. Ustalamy wartość posiadania tytułu na true i poniżej go podajemy.
Spróbujmy utworzyć teraz wykres na podstawie wygenerowanych danych. Będzie to wyglądało następująco: -tworzymy kolumnę zatytułowaną x -tworzymy kolumnę zatytułowaną y -pierwsza wartość x to - 2 a kolejne są o 0,5 większe aż do wartości 2 włącznie -w są siadujących komórkach kolumny y podajemy formułę =x/2
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
| Range("E1").Select ActiveCell.FormulaR1C1 = "x" Range("F1").Select ActiveCell.FormulaR1C1 = "y" Range("E2").Select ActiveCell.FormulaR1C1 = "-2" Range("F2").Select ActiveCell.FormulaR1C1 = "=RC[-1]/2" Range("E3").Select ActiveCell.FormulaR1C1 = "=R[-1]C+0.5" Range("E3").Select Selection.AutoFill Destination:=Range("E3:E5"), Type:=xlFillDefault Range("E3:E5").Select Selection.AutoFill Destination:=Range("E3:E6"), Type:=xlFillDefault Range("E3:E6").Select Range("E6").Select Selection.AutoFill Destination:=Range("E6:E8"), Type:=xlFillDefault Range("E6:E8").Select Selection.AutoFill Destination:=Range("E6:E10"), Type:=xlFillDefault Range("E6:E10").Select Range("F2").Select Selection.AutoFill Destination:=Range("F2:F10"), Type:=xlFillDefault Range("F2:F10").Select Range("E1:F10").Select Charts.Add ActiveChart.ChartType = xlXYScatterSmoothNoMarkers ActiveChart.SetSourceData Source:=Sheets("Arkusz1").Range("E1:F10"), PlotBy _ :=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Arkusz1" With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "y" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y" End With
|
Ten kod wymaga dokładniejszego wytłumaczenia. Zaznaczamy komórkę. W aktualnie zaznaczoną komórkę, R1C1 informuje, że nie ma żadnego przesunięcia, wpisujemy x. To samo dzieje się z y. Pod komórką gdzie wpisaliśmy x wpisujemy -2. Do komórki obok wpisujemy odwołanie, aby pobrać wartość z kolumny poprzedniej C[-1]. Pod komórką gdzie znajduje się -2 wpisujemy odwołanie do komórki stojącej wyżej R[-1], i dodajemy 0.5, będzie to krok na wykresie. Później wypełniamy pozostałem pola. Dochodzimy do tego co robiliśmy w poprzednim przypadku, tworzymy wykres, również z kolumnową orientacja odczytu, jednak jego typ to wykres punktowy na osiach x i y.. Nowością jest występowanie właściwości Axes, nadaje ona nazwy osiom, jak widać najpierw przypisujemy jest możliwość posiadania nazwy a później ja podajemy.
|