• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンボボックスの変更に応じてテキストボックスの有効を切り替える(ExcelVBA2007))

ExcelVBA2007でコンボボックスの変更に応じてテキストボックスの有効を切り替える方法

このQ&Aのポイント
  • Excel VBA 2007でコンボボックスの値に応じて、その右隣のテキストボックスの有効・無効を切り替える方法について説明します。
  • イベントハンドラを1つにまとめる方法と、次善の策として別のサブルーチンを呼び出す方法についても紹介します。
  • コンボボックス100個のうちどれかが変更された場合に、変更されたコンボボックスの番号を取得しながら呼び出されるハンドラを作成する方法も解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

こんにちは。 クラスモジュールを挿入して、そこに Option Explicit Public WithEvents CBX As MSForms.ComboBox Public idx As Integer Private Sub CBX_Change() If CBX.Value = "Any" Then UserForm1("TextBox" & idx).Enabled = False Else UserForm1("TextBox" & idx).Enabled = True End If End Sub フォームモジュールには、 Option Explicit Private cls(1 To 100) As New Class1 Private Sub UserForm_Initialize() Dim i As Integer For i = 1 To 100 Set cls(i).CBX = Me.Controls("ComboBox" & i) cls(i).idx = i cls(i).CBX.List = Array("Any", "is", "is not") Next End Sub Private Sub UserForm_Terminate() Dim i As Integer For i = 1 To 100 Set cls(i).CBX = Nothing Next End Sub 当方、EXCEL2002ですが、2007でもいけるでしょう。

TYWalker
質問者

お礼

ありがとうございます! 週明けに作業し次第、ご報告させていただきます。

TYWalker
質問者

補足

ばっちりでした! ありがとうございます。