-1

ボタンクリックでグラフを生成するためのvbaコードを作成しました。正常に動作していますが、シリーズを追加したいのが問題です。

私のコードは

Dim ch As Chart
Set ch = ActiveWorkbook.Charts.Add
Set ch = ch.Location(Where:=xlLocationAsObject, name:=assume)
With ch
.ChartType = xlXYScatterLines
 With .Parent
  .Top = Columns(b).Offset(0, 4).Top
  .Left = Columns(b).Offset(0, 4).Left
  .name = "ch"
 End With
End With
Dim sh As Series
 Set sh = ch.SeriesCollection(1)
  With sh
 .Values = Columns(b).Offset(0, 0)
 .XValues = Columns(b).Offset(0, -2)
 End With

シート名を保持する変数は次のとおりassumeです。でcolumns(b)bは列名を保持する変数です。

ボタンをクリックするとグラフが生成され、2回目にボタンをクリックすると再びグラフが生成されます。

最初のグラフにそのグラフ線を表示したいだけです。複数のグラフを作成したくありません。

4

1 に答える 1

2

これを2つの別々のコードに分割する必要があります。1つは元のグラフを作成するためのもので、もう1つは進行中にシリーズを追加するためのものです。

'===== First Chart Run ============

Dim ch As Chart
Set ch = ActiveWorkbook.Charts.Add
Set ch = ch.Location(Where:=xlLocationAsObject, Name:=assume)

With ch

    .ChartType = xlXYScatterLines

    With .Parent
        .Top = Columns(b).Offset(0, 4).Top
        .Left = Columns(b).Offset(0, 4).Left
        .Name = "ch"
    End With

End With

Dim sh As Series
Set sh = ch.SeriesCollection(1)

With sh
    .Values = Columns(b).Offset(0, 0)
    .XValues = Columns(b).Offset(0, -2)
End With

'===== Add More Series ============

Set ch = ActiveWorkbook.Charts("ch")
ch.SeriesCollection.Add _ 
    source:=assume.Range(Columns(b).Offset(0,0),Columns(b).Offset(0,-2))
于 2012-10-10T12:54:23.167 に答える