エクセルで選択フォームを入れたい

Copper Contributor

エクセル.で選択フォームを作りたいのですが。

一列の中に選択肢があってその中の1つしかチェックできないようにしたいのです (図の各色選択肢の中で1つ選んでほしいという意味)

項目はもっとずっと数が多くなりますが、全て横位一列に並んでいる選択肢の中から 選べるようにしたいのです。フォームボタンで作ってみましたが、全部のうちの1つしか選べなくなってしまって・・・。(図の4色の選択肢全部の1つしかチェックできず)どのように設定したらよいですか?

 

スクリーンショット 2023-12-12 150947.png

 

1 Reply

@hiro2234 

Excelで選択フォームを作成し、横一列に並んだ選択肢から1つだけ選べるようにするには、オプションボタン(ラジオボタン)を使用します。以下に手順を示します。

ステップ1: オプションボタンの挿入

  1. 開発ツールの有効化:
    • Excelのメニューから「ファイル」 > 「オプション」 > 「リボンの表示」を選択して、「開発ツール」を有効化します。
  2. オプションボタンの挿入:
    • 「開発」タブに移動し、「挿入」グループから「オプションボタン」を選択します。
    • シート上に横一列にオプションボタンを配置します。各ボタンには異なるラベルを設定します。

ステップ2: グループ化

  1. オプションボタンのグループ化:
    • オプションボタンをまとめてグループ化します。これにより、同じグループ内では1つだけが選択できるようになります。
    • 各オプションボタンを選択し、右クリックして「グループ化」を選択します。

ステップ3: イベントマクロの作成

  1. VBAエディタの起動:
    • 「開発」タブから「マクロ」を選択し、「新規作成」をクリックしてVBAエディタを開きます。
  2. イベントマクロの作成:
    • VBAエディタで、シートのオブジェクトを開きます。
    • シートのオブジェクトに、次のようなマクロを追加します。

Vba code (コードはテストされていません):

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim optButton As OptionButton
    Dim selectedCount As Integer
    
    ' 選択されたオプションボタンの数をカウント
    For Each optButton In Me.OptionButtons
        If optButton.Value = xlOn Then
            selectedCount = selectedCount + 1
        End If
    Next optButton

    ' 選択されたオプションボタンが1つ以上あれば、それ以外のボタンを非選択にする
    If selectedCount > 1 Then
        For Each optButton In Me.OptionButtons
            If optButton.Value = xlOn And optButton.Name <> Target.Name Then
                optButton.Value = xlOff
            End If
        Next optButton
    End If
End Sub

 

    • このマクロは、選択されたオプションボタンが1つ以上ある場合、それ以外のボタンを非選択にします。

ステップ4: イベントマクロの有効化

  1. シートに戻り、イベントマクロの有効化:
    • シートに戻り、イベントマクロを有効にします。
    • シート上で右クリックし、「シートのコードの表示」を選択します。
    • 「Worksheet_Change」のイベントマクロが表示され、有効になっていることを確認します。

これで、オプションボタンをクリックして選択すると、同じグループ内では1つだけが選択され、他のボタンは非選択になります。

 

テキスト、ステップ、コード、翻訳は AI の助けを借りて作成されました。

 

  これがお役に立てば幸いです。

 

回答は役に立ちましたか? ベストレスポンスとしてマークして、いいね!

これはフォーラム参加者全員に役立ちます。