Excelで折れ線グラフ(グラフ)を作成しています。同じグラフに複数のデータ系列がプロットされています。
ボタン(またはチェックボックスなど)を押すことでこれらのシリーズの表示/非表示を切り替えることができるマクロ/ VBAソリューションを作成する必要があります
この図に似ています(手動でExcelメニューシステムから実行)
私はすべてのメンバー変数/メソッドを調べようとしました
https://msdn.Microsoft.com/EN-US/library/office/ff837379.aspx
しかし、あまり運がありませんでした。
私はのようなビットで遊んでみました
Charts("Chart1").SeriesCollection(1)
そして
Worksheets("Graphical Data").ChartObjects(1)
しかし、グラフオブジェクト(範囲外の添え字が表示される)を取得することも、個々のシリーズの表示/非表示を切り替えることができるメソッドを見つけることもできません。
何か案は?
このような方法がわからないときはいつでも、マクロレコーダーの電源を入れます。
4つのシリーズのグラフがあり、Excel 2013のフィルター機能を使用して、マクロレコーダーの実行中に2番目のシリーズを非表示にして表示しました。
関連するコードは次のとおりです。
ActiveChart.FullSeriesCollection(2).IsFiltered = True
' series 2 is now hidden
ActiveChart.FullSeriesCollection(2).IsFiltered = False
' series 2 is now visible
シリーズのタイプ(行または列)は関係ありません。これはどのシリーズでも機能します。
お探しの物件はSeriesCollection.Format.Line.Visible
プロパティ。 Excelワークブックをすばやく作成し、単純なデータセット(1〜10)を追加し、シートSheet1に折れ線グラフ「グラフ2」を追加しました。
このコードはラインの可視性をオフにしました:
Option Explicit
Private Sub Test()
Dim cht As Chart
Dim ser As Series
'Retrieve our chart and seriescollection objects'
Set cht = Worksheets("Sheet1").ChartObjects("Chart 2").Chart
Set ser = cht.SeriesCollection(1)
'Set the first series line to be hidden'
With ser.Format.Line
.Visible = msoFalse
End With
End Sub
同様に、ser.Format.Line.Visible
プロパティをmsoTrue
に追加すると、線が再び表示されます。
チャート自体を取得するには、まずそれをアクティブにし、次にcht
変数をActiveChartに設定する必要がありました。グラフの名前を表示するには、グラフを選択して名前ボックス(セルの値/数式を入力する場所の近く)を調べます。
上記の方法を使用する場合、シリーズ名は凡例ボックスに残ります。凡例でSeriesCollection
の可視性プロパティを見つけることができませんでしたが、1つの回避策は、シリーズの名前を空の文字列に変更することです(これにより、シリーズが凡例から消えます)。見せたいシリーズ。
以下のコードは、凡例の線と系列名の表示を切り替えます。
Option Explicit
Private Sub Test()
Dim cht As Chart
Dim ser As Series
'Retrieve our chart and seriescollection objects'
Set cht = Worksheets("Sheet1").ChartObjects("Chart 1").Chart
Set ser = cht.SeriesCollection(1)
'Set the first series line to be hidden'
With ser.Format.Line
If .Visible = msoTrue Then
.Visible = msoFalse
ser.Name = vbNullString
Else
.Visible = msoTrue
ser.Name = "Series 1"
End If
End With
End Sub
そして、.Format.Line.Visible = msoTrue
設定することを忘れないでくださいser.Name
シリーズの名前に戻ります。
シリーズの表示をオン/オフにする簡単な方法があります。ソースデータにフィルターを使用します。次のように簡単に役立ちます。新しいウィンドウを挿入できます。 1つをソースデータシートに設定し、もう1つのウィンドウをチャートシートに設定します。次に、2つのウィンドウを並べて、両方を同時に表示します。ソースデータシートで必要なシリーズを同時にフィルターすると、別のシートに目的のシリーズが表示されます。