Page 216 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼フォームの色について 弁慶の泣き所 03/2/23(日) 23:51 ┗Re:フォームの色について こうちゃん 03/2/24(月) 8:57 ┗Re:フォームの色について 弁慶の泣き所 03/2/24(月) 22:06 ┗Re:フォームの色について こうちゃん 03/2/25(火) 8:25 ┗Re:フォームの色について 弁慶の泣き所 03/2/26(水) 22:03 ┗Re:フォームの色について こうちゃん 03/2/27(木) 8:28 ┗Re:フォームの色について 弁慶の泣き所 03/2/27(木) 22:37 ┗最初の回答と同様です。 こうちゃん 03/2/28(金) 8:33 ─────────────────────────────────────── ■題名 : フォームの色について ■名前 : 弁慶の泣き所 <myem@rnac.ne.jp> ■日付 : 03/2/23(日) 23:51 -------------------------------------------------------------------------
どなたか教えて下さい。 いま、住所録ソフトを作っております。フォームにコンボボックス「職種」を貼り付け、役員、特別職、一般職とリストにあります。 いま、「役員」と選んだときフォームの色を赤に、「特別職」と選んだときフォームの色を青に、「一般職」を選んだときはそのままの灰色にしたいのですが、どのようなVBAを書き込めばよいのでしょうか? また、フォームを立ち上げたときから、またレコードを移動したときでも、コンボボックスで選ばれている項目によって、色を変化させたいのです。 ちょっと分かりにくい質問ですみませんが、どなたかよろしくご教授ください。 |
弁慶の泣き所さん、こんにちは >いま、住所録ソフトを作っております。フォームにコンボボックス「職種」を貼り付け、役員、特別職、一般職とリストにあります。 >いま、「役員」と選んだときフォームの色を赤に、「特別職」と選んだときフォームの色を青に、「一般職」を選んだときはそのままの灰色にしたいのですが、どのようなVBAを書き込めばよいのでしょうか? >また、フォームを立ち上げたときから、またレコードを移動したときでも、コンボボックスで選ばれている項目によって、色を変化させたいのです。 >ちょっと分かりにくい質問ですみませんが、どなたかよろしくご教授ください。 フォームのCurrentイベントとコンボボックスのBeforeUpdateイベントあたりに、フォームの詳細セクションの背景色プロパティ変更を書いておいたらいかが? こんな感じです・・ Private Sub Form_Current() Select Case Me!職種 Case "役員" Me.Section(acDetail).BackColor = RGB(255, 0, 0) Case "特別職" Me.Section(acDetail).BackColor = RGB(0, 0, 255) Case "一般社員" Me.Section(acDetail).BackColor = -2147483633 Case Else Me.Section(acDetail).BackColor = -2147483633 End Select End Sub Private Sub 職種_BeforeUpdate(Cancel As Integer) Select Case Me!職種 Case "役員" Me.Section(acDetail).BackColor = RGB(255, 0, 0) Case "特別職" Me.Section(acDetail).BackColor = RGB(0, 0, 255) Case "一般社員" Me.Section(acDetail).BackColor = -2147483633 Case Else Me.Section(acDetail).BackColor = -2147483633 End Select End Sub |
▼こうちゃん さん: ありがとうございました!うまくいきました。 ところで、チェックボックスにチェックがついているかによって、フォームの色を変えるときはどうすればいいんですか? |
弁慶の泣き所さん、こんにちは >ところで、チェックボックスにチェックがついているかによって、フォームの色を変えるときはどうすればいいんですか? 同様にチェックボックスを判定して色を変えます。 If Me!Check1 Then Me.Section(acDetail).BackColor = RGB(255, 0, 0) Else Me.Section(acDetail).BackColor = RGB(0, 0, 255) End If |
なるほど、よく分かりました。 もう1つだけ教えてください。 2つのチェックボックスがあり、2つともチェックがついたときフォームの色を変えるにはどうしたらよいのでしょうか? また、いずれかにチェックがついたときフォームの色を変えるにはどうしたらよいのでしょうか? |
弁慶の泣き所さん、こんにちは >2つのチェックボックスがあり、2つともチェックがついたときフォームの色を変えるにはどうしたらよいのでしょうか? If Me!Check1 And Me!Check2 Then Me.Section(acDetail).BackColor = RGB(255, 0, 0) Else Me.Section(acDetail).BackColor = RGB(0, 0, 255) End If >また、いずれかにチェックがついたときフォームの色を変えるにはどうしたらよいのでしょうか? If Me!Check1 Or Me!Check2 Then Me.Section(acDetail).BackColor = RGB(255, 0, 0) Else Me.Section(acDetail).BackColor = RGB(0, 0, 255) End If |
こうちゃん さん。いつもありがとうございます。 最後にもう1つだけ教えてください。 コンボボックスの中に「(空白)」「赤」「青」「黄」とありますが、「空白」を選んだときだけフォームの色はそのままで、その他を選んだときに色を変える方法はどうしたらよいのでしょうか? |
弁慶の泣き所さん、こんにちは >コンボボックスの中に「(空白)」「赤」「青」「黄」とありますが、「空白」を選んだときだけフォームの色はそのままで、その他を選んだときに色を変える方法はどうしたらよいのでしょうか? 最初の回答と同様です。 Private Sub ComboBox1_BeforeUpdate(Cancel As Integer) Select Case Me!ComboBox1 Case "赤" Me.Section(acDetail).BackColor = RGB(255, 0, 0) Case "青" Me.Section(acDetail).BackColor = RGB(0, 0, 255) Case "黄" Me.Section(acDetail).BackColor = RGB(255, 255, 0) Case Else >空白」を選んだときだけフォームの色はそのままで '「そのままで」が「変更しない」という意味ならCase Elseは、いりません。 Me.Section(acDetail).BackColor = -2147483633 End Select End Sub #Select Case や If 文を使ってケース分けすることで、今回の一連の質問に回答が出せますね。 HELPや書籍で使用例を勉強しましょう^^ |