• ベストアンサー

特定の文字列なら背景色が赤色に・・

エクセル2010ですが、ユーザ-フォーム上のテキストボックス1が 特定の文字列 "柴" "黒柴" "チワワ"ならテキストボックス2の背景色が赤に テキストボックス1が"ぶるどっぐ" "猫" ならテキストボックス3の背景色が赤になるというコードを教えていただけませんか? よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

private sub TextBox1_Change()  select case me.textbox1  case "柴", "黒柴", "チワワ"   me.textbox2.backcolor = rgb(255, 0, 0)  case "ぶるどっぐ", "猫"   me.textbox3.backcolor = rgb(255, 0, 0)  case else   me.textbox2.backcolor = rgb(255, 255, 255)   me.textbox3.backcolor = rgb(255, 255, 255)  end select End Sub

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

「コード」と言うのはVBAか?標題なりに明記のこと。 テキストボックスの内容を、コマンドボタンのクリックで取ることにしても良いのか。 その他だと結構コードがうるさい。 「柴」にピっタリに限るのか、「柴」を含む場合にするのか。 まだ仕様が質問者ではっきり考えて無いのでは。 質問者の勝手だが、質問のようにする必要性も疑問がある。 下記は、やってみただけだが、参考になれば もともと入力語句が変わった場合に即時反応性をコードにするのは初心者には難しいと思う。 Private Sub CommandButton1_Click() UserForm1.TextBox2.BackColor = vbWhite If vlup(UserForm1.TextBox1.Text, Worksheets("Sheet1").Range("H1:h3")) Then UserForm1.TextBox2.BackColor = vbGreen End If End Sub ユーザー関数は、標準モジュールに下記を作ってみた。 これは「含む」を判定している。 Function vlup(a, b) For Each cl In b If InStr(a, cl) <> 0 Then vlup = True Exit Function End If Next vlup = False End Function この関数はシートの「条件付き書式」でも使えた。 A2:C7を範囲指定して、 「数式が」で =vlup(A2,$H$1:$H$3) ーーー >"ぶるどっぐ" "猫" ならテキストボックス3の背景色が赤になるという は省略。同じようなコードを加えれば出来る。 語句祖そのもののぴったり一意ならVLOOKUP関数をVBAで使い、「柴」グループは1、「猫」グループは2を返して 返ってきた1、か2で、テキストボックスとその背景色を変えては同だろう。

関連するQ&A