• ベストアンサー

VBA チャートグラフの凡例 表示非表示

タイトルの通り、凡例の表示非表示を設定したいと考えています。 HasLegendプロパティで凡例のオンオフを切り替えられる事までは理解したのですが 例えばグラフに要素が10個あると凡例も10個表示されると思います。 しかし今回は10このあるうちの指定した3つのみの凡例を表示するというようなことをしたいのです。 オブジェクトウィンドウを確認してみましたがそれらしいプロパティは見当たらず... なにか方法があればご教授願います。 よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

先のコメントにもありますが 個々の凡例を削除することはできますが 表示/非表示を切り替える機能はないようですので、 表示する凡例を都度選択したい場合は、 グラフを描写し、非表示にしたい判例を削除する という制御を行う必要があるものと思います。 サンプル画像とコードをポストしますので よかったら参考にしてください。 Option Explicit Sub sample()    Dim r As Long  Dim i As Long    With ActiveSheet     'グラフを削除   On Error Resume Next   .Shapes(1).Delete   On Error GoTo 0     'グラフ描写   Range("B2:G7").Select   .Shapes.AddChart2(317, xlRadar).Select   ActiveChart.SetSourceData Source:=Range("Sheet1!$B$2:$G$7")   'グラフ位置、大きさ設定   With .Shapes(1)    .Top = Range("J2").Top    .Left = Range("J2").Left    .Height = 300    .Width = 250   End With  End With  '凡例表示  With ThisWorkbook.Sheets(1)   r = .Cells(Rows.Count, 2).End(xlUp).Row '2列目最終行番号   For i = r To 3 Step -1    If .Cells(i, 8).Value = 0 Then     ActiveSheet.ChartObjects(1).Chart.Legend.LegendEntries(i - 2).Delete    End If   Next i  End With End Sub

sk8577
質問者

お礼

例も含めて詳しく回答して下さりありがとうございます。

その他の回答 (1)

  • kon555
  • ベストアンサー率51% (1842/3559)
回答No.1
sk8577
質問者

お礼

質問後、ちょうど同じ記事を発見して解決に至りました。ご回答ありがとうございます。

関連するQ&A