[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『グラフの表示・非表示をボタン一発でやりたいのですが方法がわかりません』(きよぴ)
ご教授お願いいたします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)
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.