- ベストアンサー
特定の文字列なら背景色が赤色に・・
エクセル2010ですが、ユーザ-フォーム上のテキストボックス1が 特定の文字列 "柴" "黒柴" "チワワ"ならテキストボックス2の背景色が赤に テキストボックス1が"ぶるどっぐ" "猫" ならテキストボックス3の背景色が赤になるというコードを教えていただけませんか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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)
「コード」と言うのは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で、テキストボックスとその背景色を変えては同だろう。