Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 3
  • 191

Stworzyłem prosty wykres XY, który przyjmuje koordynaty w stopniach i umieszcza na mojej mapce miasta.

W etykietach labels przy każdym punkcie chciałbym, żeby opisane było miasto. Rozwiązanie znalazłem tutaj:

http://support.microsoft.com/kb/213750

Sub AttachLabelsToPoints()

   'Dimension variables.
   Dim Counter As Integer, ChartName As String, xVals As String

   ' Disable screen updating while the subroutine is run.
   Application.ScreenUpdating = False

   'Store the formula for the first series in "xVals".
   xVals = ActiveChart.SeriesCollection(1).Formula

   'Extract the range for the data from xVals.
   xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
      Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
   xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
   Do While Left(xVals, 1) = ","
      xVals = Mid(xVals, 2)
   Loop

   'Attach a label to each data point in the chart.
   For Counter = 1 To Range(xVals).Cells.Count
     ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
         True
      ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
         Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
   Next Counter

End Sub

Obok nazw miast jest kolumna X, w stopniach i dziesiętnych ustawiłem skalę na bezwzględną z zakresami szerokości i długości geograficznej dla Polski. Klikam wykres, by był aktywny, uruchamiam makro i przy każdym punkcie jest miasto. 

OK. Ale teraz chciałbym na tej mapie przedstawić wartości z kolejnej kolumny. Na przykład chciałbym:

- zróżnicować wielkość punktów/markers albo,

- zróżnicować wielkość czcionki napisu miasta.

Stąd chciałbym zapytać o przykładowe rozwiązania, sposoby, doświadczenia w kontroli VBA nad parametrami etykiet i punktów, np. wielkością (czcionki) etykiet i punktów.  Czy łatwo byłoby przerobić np. rozwiązanie powyższe, by przypisywało każdemu punktowi/markerowi wielkość zależną od wartości w pierwszej kolumnie? Albo inną wielkość czcionki etykiecie/opisowi/label?

Z góry dziękuję za ciekawe podpowiedzi.

PS. Na razie poradziłem sobie, nakładając kilka takich wykresów na siebie i w pierwszej kolumnie umieszczając mikrowykresiki  funkcja =rept("|",znormalizowana_wartość), ale nie jest to rozwiązanie idealne.

Jacek_Kotowski
  • Zapytał
  • @ Jacek_Kotowski | 10.09.2014
    • lider
    • laureat
    • ekspert
    • 60
    • 54
    • 94

Odpowiedź (1)

  • 0
Daniel_Szulewicz
  • Odpowiedział
  • @ Daniel_Szulewicz | 30.08.2016
    • 0
    • 0
    • 0