オプションボタンをきれいな画像に

オプションボタンをきれいな画像に
オプションボタンをきれいな画像に

Excel2016,2013マクロ 61回

見られて恥ずかしくないきれいなオプションボタン

前回(マクロ講座60回)ではオプションボタンを大きく見せる方法を紹介しましたが、管理人的にはどうもやぼったいと感じてしまいます。そこでいっそのことオプションボタンをボタン画像で代替えできないかと考えました。


(サンプルファイルは、こちらから マクロ61回サンプルデータ

オプションボタンをきれいな画像で作る

オプションボタンの代わりをする画像を挿入しましょう。挿入タブから、図形を挿入します。図形上にOption1とい文字列を入力します。(わかりやすくするためです。)
オプションボタンをきれいな画像にマクロ1
図形Option1をコピーして3つにします。
図形には、「四角形:角を丸くする1」という使いずらい名前がデフォルトでついています。これはあとで変更します。
オプションボタンをきれいな画像にマクロ2
「四角形:角を丸くする1」という名前を単に、Option1に変更します。Enterで確定すると名前が変更されます。
オプションボタンをきれいな画像にマクロ3
Option1、Option2、Option3とボタン名と表示テキストが同じ画像が3つ作成できました。
オプションボタンをきれいな画像にマクロ4

リンクしたセルを作る

どれを選択したのか、はっきりさせるために、D1セルの名前をLinkedCellに変更します。Enterで確定します。
オプションボタンをきれいな画像にマクロ5

オプションボタンにするためのコード

VBEを起動して、Sheet1に次のコードを記述します。
[LinkedCell].Value = 1だけ[LinkedCell].Value = 2、[LinkedCell].Value = 3と変更してあるだけの簡単なコードです。
Public Sub option1選択()
[LinkedCell].Value = 1
オプションボタンの色1
End Sub
オプションボタンをきれいな画像にマクロ6

選択したボタンの色を変更するコード

これで、どの画像を選択しても、選択した画像のナンバーが設定したLinkedCellに表示されるようになります。
されに選択したボタン画像の色を変更するために「オプションボタンの色」というマクロコードを記述します。
オプションボタンをきれいな画像にマクロ7
結果はこのように、選択したボタンの色が変わるとともに、選択した画像のナンバーが設定したLinkedCellに表示されます。
オプションボタンをきれいな画像にマクロ8
オプションボタンの色を変更するのも簡単です。
オプションボタンをきれいな画像にマクロ9
画像の色は、.ShapeStyle = msoShapeStylePreset34のようにナンバーを指定しているだけです。
Public Sub オプションボタンの色2()
    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 = msoShapeStylePreset34
            Else
                .ShapeStyle = msoShapeStylePreset31
            End If
        End With
    Next
End Sub
msoShapeStylePresetは、
画像を挿入して選択すると表示される描画ツールにある書式タブの図形のスタイルグループに用意されているスタイルにあらかじめ設定されているナンバーです。
オプションボタンをきれいな画像にマクロ10
次回はさらにコードを使いやすくしましょう。
お疲れさまでした