[[20130918144709]] 『グラフの表示・非表示をボタン一発でやりたいので』(きよぴ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『グラフの表示・非表示をボタン一発でやりたいのですが方法がわかりません』(きよぴ)
エクセル2010で一つのグラフの中に
折れ線グラフA、折れ線グラフB、折れ線グラフCがあるのですが
やりたいこととしては
グラフAの表示・非表示ボタン
グラフBの表示・非表示ボタン
グラフCの表示・非表示ボタン
をそれぞれ作成して、ボタンのオンオフによって
グラフAを表示、グラフB,Cを非表示にするなどをしたいのですが
方法がわからずです。

ご教授お願いいたしますm(__)m


グラフエリア全体を真っ白な四角シェイプで覆い、表示したいグラフだけを最前面にするとか。
 Private Sub CommandButton1_Click()
    Shapes("グラフ 1").ZOrder msoBringToFront
    Shapes("グラフ 2").ZOrder msoSendToBack
    Shapes("グラフ 3").ZOrder msoSendToBack
End Sub
(???)

 新規ブックの標準モジュールに

 '===========================================================================
 Option Explicit
 Sub mk_sample()
    mk_data
    MsgBox "この表を基にグラフを作成します"
    mk_chart
 End Sub
 '================================================================================
 Sub mk_data()
    With ActiveSheet
       .Range("a1:d1").Value = Array("回", "Doctors2", "救命病棟24時", "半沢直樹")
       .Range("a2:d4").Value = [{1,19.6,17.7,19.4;2,16.6,15.9,21.8;3,16.8,14.9,22.9}]
       .Range("a5:d7").Value = [{4,15.7,15.7,27.6;5,18.8,14.9,29;6,15.9,13.2,29}]
       .Range("a8:d10").Value = [{7,18.5,14,30;8,20,11.3,32.9;9,21.7,13.7,35.9}]
    End With
 End Sub
 '==========================================================================
 Sub mk_chart() '
    Dim chtobj As ChartObject
    Range("A1").Select
    Set chtobj = ActiveSheet.ChartObjects.Add(410, 81, 432, 283)
    With chtobj.Chart
       .ChartType = xlLine
       .SetSourceData Source:=Range("Sheet1!$b$1:$D$10")
       .SeriesCollection(1).XValues = "=" & ActiveSheet.Name & "!$A$2:$A$10"
       .ApplyLayout (10)
       .ChartTitle.Text = "視聴率推移"
       .Axes(xlValue).AxisTitle.Text = "視聴率 %"
       .Axes(xlCategory).AxisTitle.Text = "回"
       .ChartGroups(1).HasHiLoLines = False
       .HasLegend = False
   End With
 End Sub

 上記のmk_sample を実行してみてください。

 視聴率推移というグラフが作成されます。

 このグラフのDoctors2の表示。非表示は・・・、

 Sub 表示非表示()
    With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
       .Format.Line.Visible = Not .Format.Line.Visible
    End With
 End Sub

 こんな方法で可能です。表示。非表示は、他にも方法がありますが、このようなことですか?

 ichinose


 >一つのグラフの中に 
 >折れ線グラフA、折れ線グラフB、折れ線グラフCがあるのですが 
 「系列が3つある」って事ですよね?

 で、データ元のその行(列?)を非表示にすると
 グラフの描画もなくなりませんか?
 (もしかしたら、何か設定があるかもしれませんが)

 そしたら、マクロで行(列?)の表示・非表示を切り替えるだけで
 グラフの方はつつかなくても良いのかもしれません。

 或いは、グラフ用の元データをどこかにコピーしておいて
  非表示にする場合、データを削除。
  表示にする場合、データが保存してある所からコピーして貼り付け。
 とかでも、似た感じにはなると思います。

 この場合も、グラフはつつかないので コードを作るハードルも低いんじゃないかと思います。

 (HANA)

まったく返信がありませんが、グラフのオンオフではなく、線のオンオフならば、以下とか。
(ichinoseさんと同じになりましたが、具体的に3つのボタンで実現)

 Private Sub CommandButton1_Click()
    Call sOnOff(1)
 End Sub

 Private Sub CommandButton2_Click()
    Call sOnOff(2)
 End Sub

 Private Sub CommandButton3_Click()
    Call sOnOff(3)
 End Sub

 Sub sOnOff(iNum As Long)
    With ActiveSheet.ChartObjects("グラフ 1").Chart.SeriesCollection(iNum)
        .Format.Line.Visible = Not (.Format.Line.Visible)
    End With
 End Sub

HANAさん案は、凡例も消えるし、良いかもですね。
(???)


皆様、ご回答ありがとうございます。
お礼が遅くすみません。
皆様から頂いた情報をもとにいろいろ試してはいるのですが、
マクロを組むことに対して超初心者なのでうまくいってない現状です。

時間がかかるとは思いますが、一つ一つやってみて改めてお礼をさせていただければと思ってます。
※またマクロなどを使わずにできる方法があればご教授いただければと思います。
(きよぴ)


 >いろいろ試してはいるのですが、 
 >マクロを組むことに対して超初心者なのでうまくいってない現状です
 何を試したのかを記述してください。
 又、何がうまくいかないのかも記述してください。

 VBAをどこに記述するか? 等でしたら、
http://msdn.microsoft.com/ja-jp/library/office/ee814737(v=office.14).aspx#odc_Office14_ta_GettingStartedWithVBAInExcel2010_MacrosAndTheVisualBasicEditor

 この辺りから勉強してみてください。

 >マクロなどを使わずにできる方法
 近い方法は、HANAさんが投稿された方法です。

 >データ元の列を非表示にすると
 >グラフの描画もなくなりませんか?

 ↑これですね!!

 列の非表示は  ctrl+0  (0は、テンキーではなく 「を」 や 「わ」 と一緒にあるキー)
 列の表示は、  ctrl+shift+0

 のショートカットキーを使えば、少しは簡単な設定で表示・非表示ができます。

 尚、Excel2010では、ctrl+shift+0 で表示ができない場合があるそうなので

http://support.microsoft.com/kb/981938/ja

 ここを参考に設定すれば可能です。

 ichinose


 >※またマクロなどを使わずにできる方法があればご教授いただければと思います。

 データの方を変更するので良いのなら、「マクロ」と言っても
 マクロの記録程度で出来ると思います。

 提案に対して「こういう所がこうなったらいいのに」なんてのがあれば
 それを書いてもらえると、また別の提案も出来るかもしれません。

 (HANA)

皆様ご回答ありがとうございます。
皆様から頂いた回答を元にネットで調べながらなんとかできました。
ありがとうございました。

答えとしては
hanaさんにアドバイスいただいたデータ下の列を非表示にするマクロを作りなんとか解決できました。

もろもろアドバイス等ありがとうございました。
(きよぴ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.