none
Como converter um gráfico para usar array ao invés de células? RRS feed

  • Pergunta

  • Sub ConvertSeriesValuesToArrays()
         Dim seSeries As Series 'define uma variável do tipo Series
         Dim myChart As Chart 'e uma do tipo gráfico
    
         On Error GoTo Failure
    
         Set myChart = ActiveSheet.ChartObjects(1).Chart 'toma o primeiro gráfico e coloca na variável
    
         For Each seSeries In myChart.SeriesCollection 'para cada série entre as séries do gráfico
           seSeries.Values = seSeries.Values 'seus valores serão seus valores?
           seSeries.XValues = seSeries.XValues 'hein?
           seSeries.Name = seSeries.Name 'ué, muda alguma coisa?
         Next seSeries
         Exit Sub
    Failure:
         MsgBox "Sorry, the data exceeds the array limits"""
       End Sub
    
    Olá, estava lendo a sub acima em um tutorial, pelo título, parece que é para usar variáveis do tipo "Series" ao invés de intervalos de células. No entanto, dentro do Each, não entendo o que está acontecendo. As séries estão recebendo elas mesmas?!
    sábado, 29 de janeiro de 2011 15:31

Respostas

  • Você tem razão, essas atribuições aos valores das séries não impactuam nelas. Minha opinião é que quem escreveu o código inseriu esse trecho só para sabermos como se altera os valores e nome das séries de um gráfico.

    Para atribuir um array à um gráfico, utilize um código como:

    Sub AtribuirArrayParaSérie()
    
      Dim seSeries As Series
      Dim myChart As Chart
      Dim ar(0 To 9) As Double
      
      ar(0) = 15
      ar(1) = 20
      ar(2) = 25
      ar(3) = 35
      ar(4) = 65
      ar(5) = 75
      ar(6) = 85
      ar(7) = 95
      ar(8) = 15
      ar(9) = 55
      
      Set myChart = ActiveSheet.ChartObjects(1).Chart
      
      For Each seSeries In myChart.SeriesCollection
        If seSeries.Name = "Teste" Then
          seSeries.Values = ar
        End If
      Next seSeries
    
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    quarta-feira, 2 de fevereiro de 2011 10:53
    Moderador