オプションボタンをきれいな画像に
Excel2016,2013マクロ 61回
画像のオプションボタンを使いやすく
前回(マクロ講座60回)ではオプションボタンを大きく見せる方法を紹介しましたが、管理人的にはどうもやぼったいと感じてしまいます。そこでいっそのことオプションボタンをボタン画像で代替しました。
またコードを1つにまとめて利用しやすくしました。
(サンプルファイルは、こちらから
マクロ61回サンプルデータ)
同じコードを登録
前回は、画像にそれぞれ別のマクロを登録していましたが、下記画像のように、その中身はほとんど一緒でした。今回は、これを一つにまとめてしまうことにしましょう。
必要なのは、ボタンの番号です。どのボタンが選択されたかは、Application.Callerで取得できるので、その名称から番号だけを取り出します。
Public Sub option選択() Dim CurrentIndex As Integer CurrentIndex = CInt(Replace(Application.Caller, "Option", "")) ' Option1という文字列からoptionをとる [LinkedCell].Value = CurrentIndex Call オプションボタンの色1 End Sub
画像にそれぞれに、新しいコードを登録します。
「オプションボタンの色」マクロを複数用意することで、ボタンの色も簡単に変更できます。
「オプションボタンの色」マクロを複数用意することで、ボタンの色も簡単に変更できます。
選択した内容をセルに表示
下図のように選択結果の内容をE1セルに表示することにしましょう。
E1セルに名前をつけてやります。ここでは「result」としました。
Select Caseステートメントをつかって、1が選択されたとき、2が選択されたとき、3が選択されたときと、それぞれE1セルに表示する内容をしていします。E1セルに名前をつけたので、セルの指定が名前でできるようになっています。
動作を確認してみましょう。
キャプションを変更
ボタンに表示されるキャプションを変更したり、結果の表示内容を変更することで、活用しやすくなります。
ボタンの色のコードは、Presetのナンバーを変更するだけで簡単に変えることができます。
Public Sub オプションボタンの色3() Dim CurrentIndex As Integer Dim LinkedCellIndex As Integer LinkedCellIndex = [LinkedCell].Value For CurrentIndex = 1 To 3 With Me.Shapes("Option" & CurrentIndex) If CurrentIndex <> LinkedCellIndex Then .ShapeStyle = msoShapeStylePreset3 Else .ShapeStyle = msoShapeStylePreset38 End If End With Next End Sub