ユーザーフォームを使って、棒グラフの系列色を1クリックで変えるVBAです。
動画が見れない方は画像でご覧ください。
使い方
棒グラフの系列を選択してユーザーフォームのボタンを押すと、
その色に変わります。
円柱状に見えるようなグラデーションにしています。さらに、
2回連続して押すと色が濃くなります。お好みで使えます。
他の色に変更するときは「白」を押してから
他の色を押してください。
VBA
ユーザーフォームを作成し、コマンドボタンを挿入します。
コマンドボタンは上からCommand1,2…6としています。
CommandButtun実行時のVBAは下の通りです。
CommandButton1_Click() If TypeName(Selection) = "Range" Then MsgBox "グラフを選択してから実行してください。", 16 Exit Sub End If With Selection.Border .Color = RGB(79, 129, 189) End With With Selection.Format.Fill .Visible = msoTrue .BackColor.RGB = RGB(149, 179, 215) .ForeColor.RGB = RGB(79, 129, 189) .TwoColorGradient msoGradientVertical, 3 End With End Sub Private Sub CommandButton2_Click() If TypeName(Selection) = "Range" Then MsgBox "グラフを選択してから実行してください。", 16 Exit Sub End If With Selection.Border .Color = RGB(192, 80, 77) End With With Selection.Format.Fill .Visible = msoTrue .BackColor.RGB = RGB(218, 150, 148) .ForeColor.RGB = RGB(192, 80, 77) .TwoColorGradient msoGradientVertical, 3 End With End Sub Private Sub CommandButton3_Click() If TypeName(Selection) = "Range" Then MsgBox "グラフを選択してから実行してください。", 16 Exit Sub End If With Selection.Border .Color = RGB(155, 187, 89) End With With Selection.Format.Fill .Visible = msoTrue .BackColor.RGB = RGB(196, 215, 155) .ForeColor.RGB = RGB(155, 187, 89) .TwoColorGradient msoGradientVertical, 3 End With End Sub Private Sub CommandButton4_Click() If TypeName(Selection) = "Range" Then MsgBox "グラフを選択してから実行してください。", 16 Exit Sub End If With Selection.Border .Color = RGB(128, 100, 162) End With With Selection.Format.Fill .Visible = msoTrue .ForeColor.RGB = RGB(128, 100, 162) .BackColor.RGB = RGB(177, 160, 199) .BackColor.RGB = RGB(177, 160, 199) .TwoColorGradient msoGradientVertical, 3 End With End Sub Private Sub CommandButton5_Click() If TypeName(Selection) = "Range" Then MsgBox "グラフを選択してから実行してください。", 16 Exit Sub End If With Selection.Border .Color = RGB(247, 150, 70) End With With Selection.Format.Fill .Visible = msoTrue .BackColor.RGB = RGB(250, 191, 143) .ForeColor.RGB = RGB(247, 150, 70) .TwoColorGradient msoGradientVertical, 3 End With End Sub Private Sub CommandButton6_Click() If TypeName(Selection) = "Range" Then MsgBox "グラフを選択してから実行してください。", 16 Exit Sub End If With Selection.Format.Line .ForeColor.ObjectThemeColor = msoThemeColorText1 End With With Selection.Format.Fill .ForeColor.ObjectThemeColor = msoThemeColorAccent1 .ForeColor.ObjectThemeColor = msoThemeColorBackground1 .Solid End With End Sub