過去ログ

                                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を書き込めばよいのでしょうか?
また、フォームを立ち上げたときから、またレコードを移動したときでも、コンボボックスで選ばれている項目によって、色を変化させたいのです。
ちょっと分かりにくい質問ですみませんが、どなたかよろしくご教授ください。

 ───────────────────────────────────────  ■題名 : Re:フォームの色について  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/2/24(月) 8:57  -------------------------------------------------------------------------
   弁慶の泣き所さん、こんにちは

>いま、住所録ソフトを作っております。フォームにコンボボックス「職種」を貼り付け、役員、特別職、一般職とリストにあります。
>いま、「役員」と選んだときフォームの色を赤に、「特別職」と選んだときフォームの色を青に、「一般職」を選んだときはそのままの灰色にしたいのですが、どのような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

 ───────────────────────────────────────  ■題名 : Re:フォームの色について  ■名前 : 弁慶の泣き所  ■日付 : 03/2/24(月) 22:06  -------------------------------------------------------------------------
   ▼こうちゃん さん:
ありがとうございました!うまくいきました。
ところで、チェックボックスにチェックがついているかによって、フォームの色を変えるときはどうすればいいんですか?

 ───────────────────────────────────────  ■題名 : Re:フォームの色について  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/2/25(火) 8:25  -------------------------------------------------------------------------
   弁慶の泣き所さん、こんにちは

>ところで、チェックボックスにチェックがついているかによって、フォームの色を変えるときはどうすればいいんですか?
同様にチェックボックスを判定して色を変えます。

  If Me!Check1 Then
    Me.Section(acDetail).BackColor = RGB(255, 0, 0)
  Else
    Me.Section(acDetail).BackColor = RGB(0, 0, 255)
  End If

 ───────────────────────────────────────  ■題名 : Re:フォームの色について  ■名前 : 弁慶の泣き所  ■日付 : 03/2/26(水) 22:03  -------------------------------------------------------------------------
   なるほど、よく分かりました。
もう1つだけ教えてください。
2つのチェックボックスがあり、2つともチェックがついたときフォームの色を変えるにはどうしたらよいのでしょうか?
また、いずれかにチェックがついたときフォームの色を変えるにはどうしたらよいのでしょうか?

 ───────────────────────────────────────  ■題名 : Re:フォームの色について  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/2/27(木) 8:28  -------------------------------------------------------------------------
   弁慶の泣き所さん、こんにちは

>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

 ───────────────────────────────────────  ■題名 : Re:フォームの色について  ■名前 : 弁慶の泣き所  ■日付 : 03/2/27(木) 22:37  -------------------------------------------------------------------------
   こうちゃん さん。いつもありがとうございます。
最後にもう1つだけ教えてください。

コンボボックスの中に「(空白)」「赤」「青」「黄」とありますが、「空白」を選んだときだけフォームの色はそのままで、その他を選んだときに色を変える方法はどうしたらよいのでしょうか?

 ───────────────────────────────────────  ■題名 : 最初の回答と同様です。  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/2/28(金) 8:33  -------------------------------------------------------------------------
   弁慶の泣き所さん、こんにちは

>コンボボックスの中に「(空白)」「赤」「青」「黄」とありますが、「空白」を選んだときだけフォームの色はそのままで、その他を選んだときに色を変える方法はどうしたらよいのでしょうか?

最初の回答と同様です。

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や書籍で使用例を勉強しましょう^^

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 216