Excel でセルの値によってラジオ ボタンを選択するにはどうすればよいですか?

Excel でセルの値によってラジオ ボタンを選択するにはどうすればよいですか?

隣接するセルにラベルが付いたラジオ ボタンのグループがあります。ターゲット セルの値と一致するラベルが付いたラジオ ボタンをアクティブにするにはどうすればよいでしょうか。

私が達成しようとしていることと同等の例を次に示します。

ここに画像の説明を入力してください

ここでは、「購入者」と「送信先」という 2 つのラジオ グループがあります。ラベルは列 A に、ラジオ グループは列 B に、ターゲット値は列 C にあります。列 C の値は私たちが制御するもので、列 A のラベルのリストでターゲット セルの値を検索して、正しいラジオ ボタンをアクティブ化します。つまり、C2 が「内部」に変更された場合、セル B4 のラジオ ボタンをアクティブ化します。B7 と B8 のラジオ ボタンは別のグループにあるため、影響を受けません。

答え1

ラベルの値を実際に読み取る必要はありません。オプション ボタンにラベルを割り当て、その方法で選択したオプションの値を変更できます。

Worksheet_SelectionChangeでこれを呼び出すことができます

Sub reflectCell()
 Dim targetedCell As String
 targetedCell = Range("A1").Text

Select Case UCase(targetedCell)
  Case "RED"
    ActiveSheet.OptionButton1.Value = True
  Case "BLUE"
    ActiveSheet.OptionButton2.Value = True
  Case "GREEN"
    ActiveSheet.OptionButton3.Value = True
End Select

終了サブ

ラベルが OptionButton に隣接するセル値であることを意味していない限り、ターゲット セルは静的な範囲の場所ですか、それとも現在の ActiveCell ですか?

ターゲット セルが常に同じ場所にある場合は、次のように入力スペルを制御できます。 ここに画像の説明を入力してください

もう一つのよりシンプルなアプローチは

シート上で数式を使用できる場合に機能する非マクロソリューションは、このスクリーンキャプチャに示されています。

オプションボタンの例

各オプション ボタンに列 A のラベルと同じ名前を付けます。リンクされたセルを別のセルにします (非表示にすることもできます。例 E は F に表示されている数式です)。そのセルで、各セル ラベルに入力した値を比較します。TRUE になるのは 1 つだけです (数式の例を参照)。

したがって、B2のオプションはE2にリンクされ、B3はE3にリンクされ、B7はE7にリンクされます。数式を含む追加の列が許可されている場合(どこにでも配置できます)、これはvbaを使用するよりもはるかに簡単です。

関連情報