• 締切済み

エクセルのグラフ操作

エクセルで複数のデータ系列を1つのグラフに表示させていますが、たくさんありすぎて見えにくい場合があります。ラジオボタンで、データ系列ごとに表示・非表示を簡単に出来る方法を教えて下さい。 VBはサンプルプログラムを数年前に作ったきり知識は皆無に等しいです。 よろしくお願いいたします。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

シートの状況、グラフの種類、ラジオボタン(オプションボタン)をどこに置くといった事を明示すれば、優しい回答者の方がこさえてくれるかもしれません。 ご要求通りという訳にはいきませんが、オートフィルタを使えばVBA要らずです。画像をご覧下さい。 下記は、興味本位に作成したもので、分かり易くも速くもないと思いますので、話の種程度です。 ワークシートに散布図(マーカーと線あり)が一つあり、元データも同一シートにあるとします。元データのある系列のセルでWクリックすると、該当するグラフの系列の表示・非表示が切り替わります。目的のシートモジュールに記述します。イベントマクロについては、参考URLをご覧下さい。 線の色とマーカーがエクセルお仕着せで変更になってしまう事があるのが難です。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim mySeries As Series Dim mychartobj As ChartObject Dim i As Long Set mychartobj = Me.ChartObjects(1) For i = 1 To mychartobj.Chart.SeriesCollection.Count Set mySeries = mychartobj.Chart.SeriesCollection(i) If Not Intersect(Target, Me.Range(Split(Split(mySeries.Formula, ",")(2), "!")(1))) Is Nothing Then Cancel = True With mySeries If .Format.Line.Visible = msoFalse Then .Format.Line.Visible = msoTrue .MarkerStyle = xlMarkerStyleAutomatic Else .Format.Line.Visible = msoFalse .MarkerStyle = xlMarkerStyleNone End If End With End If Next i End Sub ※ループをiで回しているのは、マーカーの種類をワークシートに保存しようとした時の名残です。最初にマーカーの種類を手動で決めてあれば、保存する価値もあるのですが...

参考URL:
http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_event.html
yokayoka815
質問者

お礼

まさしくやりたかったことがオートフィルターでできるのですね。 オートフィルタを列に対してかけたいのですが、行しかできないのでグラフ横軸の範囲を絞るのには使えそうです。行と列を入れ替えれば系列ごとにグラフ表示・非表示を切り替えれました。次から、行と列を入れ替えてデータを作ります。ただ、横方向のスクロールが大変そうですが。 VBAの方も試してみます。ありがとうございました。

関連するQ&A