そのため、6 つのシリーズを含むグラフがあり、一連の ActiveX チェック ボックスを使用して各シリーズを表示または非表示にできるようにしたいと考えています。これまでのところ、チェック ボックスは正常に機能しているようですが、個々のシリーズを非表示にする方法がわかりません。シリーズを非表示にするために使用できるシリーズのプロパティはありますか? Google と Microsoft のヘルプが役に立ちません。
(いや、無い訳ではないですが…)
どんな助けでも大歓迎です。
アップデート
待ってください、私は過去にこれに出くわしたことを覚えています。必要なデータを非表示にする良い方法は、グラフ化されているデータの実際の行/列を非表示にすることです。したがって、ActiveX コントロールはグラフに触れませんが、グラフ データの列/行を非表示/非表示にします。
表示する必要がある他のデータに干渉しないようにチャート データを設定する必要があります。
誰かの利益のために私の元の答えを残します...
マクロを記録して遊んでみました...
この素晴らしい結果を得ました:
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).Select
'Turn it on
Selection.Format.Line.Visible = msoTrue
'Turn it off
Selection.Format.Line.Visible = msoFalse
No Line
これは、[データ系列の書式設定] ダイアログ ボックスの [線の色] セクションで選択することと同じです。
Excel で行き詰まったときは、WWBGD のようにマクロを記録してみます。(ビル・ゲイツならどうする?)
塗りつぶしを「なし」に設定した棒グラフの結果は次のとおりです。
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).Select
Selection.Format.Fill.Visible = msoFalse
それは役に立ちますか?
Excel 2013 では、セリエを非表示にしたり、凡例から取り出したりするには、フィルター オプションを使用します。VBA の例:
次のコードは、チャートのアウト/インでフィルター処理することにより、シリーズを非表示/復元します。ActiveSheet.ChartObjects("グラフ 1").Chart.FullSeriesCollection(1).IsFiltered = True / False
これは、リボン コマンド [デザイン] + [データの選択] (文字が選択されている場合に使用可能) を使用して、一連のイン/アウトを手動でフィルタリングすることと同じです。
ダッシュの色、マーカーなどのすべてのシリーズ オプションは変更されずに復元されます。
の場合、上記の2つはうまくいきませんでしChartType = xlLineMarkers
た。うまくいったのは:
For Each mySeries In .SeriesCollection
With mySeries
.Border.LineStyle = xlNone
.MarkerStyle = xlNone
.MarkerBackgroundColorIndex = xlColorIndexNone
End With
Next
ただし、凡例には引き続き線が表示されます。そのエントリを個別に削除する必要があります。