2016-05-16 5 views
0

したがって、3つの1次元配列(それぞれ30要素)を生成するコードがあります。最初の配列には日付(x値)があり、他の2配列には数字があります(1はK 2会社の売上です)。これらの配列をシリーズとして使用するには、VBAを使用します。私は単純なコードに遭遇し、私の目的のためにそれを使用しようとしました...しかし、これは初めてvbaでチャートを使用しています。助けてください!範囲の代わりに配列を使用する線グラフ

あなたは、私が1から30まで行くのインデックスを持つ配列としてDateSales_KSales_M(30個のエントリ)

Dim myChart As Chart 

Dim mySeries As Series 

Set myChart = Charts.Add 

Set myChart = myChart.Location(Where:=xlLocationAsObject, Name:="Sheet1") 

を持っていると仮定することができますが、「ちょっとここで失われた私は、チャートをアクティブにする方法を知っているかtheresの場合はいけません"チャート"と "チャートオブジェクト"の定義の重要な違い

Set myChart = ActiveChart 

Set mySeries = myChart.SeriesCollection(1) 


series.xvalues = Date 

series.values = Sales_K 'How do I add Sales_M y value series?? 

できるだけシンプルにしてください。私はチャートでいくつかのYouTube動画を見てみましたが、チャートの「親」プロパティを使ってchartObjectsに入るようになりました...私が望むのは、配列を使ってx値として2行と日付の折れ線グラフを作成することだけです。

+0

最初に開始するのは、予約語「日付」を配列名として使用しないことです。日付は、現在の日付を戻すVBA関数です。だから、myDateなどを使って... – MacroMarc

答えて

0

次のように、newSeriesメソッドで別の系列を追加できます。また、必要に応じて同じX値を再利用することもできます。

ChartObjectはプレースホルダーオブジェクトであり、Chartにはすべての詳細(単純な配置方法)が含まれています。

Public Sub makeChart() 

    Dim ch As Chart 
    Dim ws As Worksheet 
    Dim arr1 As Variant, arr2 As Variant, arr3 As Variant 
    Dim ser As Series, ser2 As Series 

    Set ws = Sheet5 
    Set ch = ws.chartObjects.Add(Left:=100, Top:=100, Width:=500, Height:=400).Chart 
    ch.ChartType = xlLine 

    arr1 = Array(10, 15, 12, 25, 35, 20) 
    arr2 = Array(17, 33, 20, 45, 11, 40) 
    'arr3 = Array("01/05/2016", "02/05/2016", "03/05/2016", "04/05/2016", "05/05/2016", "06/05/2016") 
    arr3 = Array(DateValue("01/05/2016"), DateValue("02/05/2016"), DateValue("03/05/2016"), _ 
       DateValue("04/05/2016"), DateValue("05/05/2016"), DateValue("06/05/2016")) 

    Set ser = ch.SeriesCollection.NewSeries 
    ser.XValues = arr3 
    ser.Values = arr1 
    Set ser2 = ch.SeriesCollection.NewSeries 
    ser2.Values = arr2 

End Sub 
関連する問題