- Excelで操作するグラフの各線(要素)をチェックボックスでON/OFFしたい方
- Excel VBAの知識を増やしたい方
Excel365では、グラフの各要素をON/OFFする機能が備わりました。
下の様に、グラフを選択すると出てくるフィルターマークをクリックしたら、チェックボックスがでてきます。

デフォルトでこの機能はありがたい!
でも『適用』ボタンを押さないといけないし、タイムリーにON/OFFが出来る訳ではないです。
今回紹介するのは、Excel365の前のバージョンでもできるVBAを使ったチェックボックスでのON/OFFをする方法です。
完成形のシートイメージはこちら

~Excelでグラフの各要素のON/OFFをチェックボックスで操作する方法~
操作動画を作ってみたので、これも参考に見てください。
チェックボックスやボタンの呼び出し、設定
■グラフを作っておきます
■ 開発 – 挿入 – チェックボックス で必要な数のチェックボックスを挿入



■チェックボックスの位置を整列させたり、


テキストがフルで表示されるように、サイズ幅を大きくしておきます。

■ボタンを挿入します。※四角のオートシェイプでも良いです

こちらはサイズやフォントを調整した後です。

チェックボックスのテキストを自動で反映するVBAコード
■チェックボックス右横のテキストをグラフの各要素タイトルにする為のマクロです。
関係図は下図の通りです。

Sub CheckBoxname() ActiveSheet.CheckBoxes(1).Select Selection.Characters.Text = Worksheets("マクロ").Range("C5").Value ActiveSheet.CheckBoxes(2).Select Selection.Characters.Text = Worksheets("マクロ").Range("D5").Value ActiveSheet.CheckBoxes(3).Select Selection.Characters.Text = Worksheets("マクロ").Range("E5").Value ActiveSheet.CheckBoxes(4).Select Selection.Characters.Text = Worksheets("マクロ").Range("F5").Value Range("O4").Select
End Sub
訳すると
・現在のシートのチェックボックス(1)を選択
・選択している図のテキスト=「マクロ」シートのC5の値に変える
という事を4つのチェックボックスに実施し、セルO4を選択して終わる
というものです。
■ボタンにマクロを適用させます。

そして、ボタンを押すとー
↓変わりましたね。

さらに参照先の値を変えても、ボタンを押せば反映されます!

チェックボックスのON/OFFを設定するVBAコード
チェックボックスON/OFFとグラフの各要素の表示ON/OFFを連動させましょう
■グラフの名前を確認しておきます。 このグラフは「グラフ1」ですね。

このコードの様に、数字だけ変えていきます。

Sub CheckBox1_OnOff() If ActiveSheet.CheckBoxes(1).Value = 1 Then ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.FullSeriesCollection(1).IsFiltered = False Else ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.FullSeriesCollection(1).IsFiltered = True End If Range("O4").Select
End Sub
Sub CheckBox2_OnOff() If ActiveSheet.CheckBoxes(2).Value = 1 Then ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.FullSeriesCollection(2).IsFiltered = False Else ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.FullSeriesCollection(2).IsFiltered = True End If Range("O4").Select
End Sub
Sub CheckBox3_OnOff() If ActiveSheet.CheckBoxes(3).Value = 1 Then ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.FullSeriesCollection(3).IsFiltered = False Else ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.FullSeriesCollection(3).IsFiltered = True End If Range("O4").Select
End Sub
Sub CheckBox4_OnOff() If ActiveSheet.CheckBoxes(4).Value = 1 Then ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.FullSeriesCollection(4).IsFiltered = False Else ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.FullSeriesCollection(4).IsFiltered = True End If Range("O4").Select
End Sub
訳すると
・チェックボックス(1)の値が1(= ON)ならば、
・現在のシートの「グラフ1」をアクティブにし、
・1つめのグラフ要素のフィルターをFalse(=フィルターをかけない=表示させる)にする
・チェックボックス(1)の値が1でないならば、
・現在のシートの「グラフ1」をアクティブにし、
・1つめのグラフ要素のフィルターをTrue(=フィルターをかける=表示させない)にする
という設定を4つのチェックボックスにしています。
■各チェックボックスにマクロを登録します。

これで完成です!!

動画も参考にして下さい。
おまけ
Excelテク集の目次は下の通り
(下のリンクから各項目に直接アクセスできます)
時短や快適さアップのテクニックが多くあります!!
最後まで見ていただき、ありがとうございました。
広告
広告
広告