[リストへもどる]
一括表示

投稿時間:2003/09/04(Thu) 15:03
投稿者名:相川
URL :
タイトル:
チェックボックスの制御
お聞きしたいことがあります。

チェックボックスをチェックしている時としていない時で、
テキストボックスのEnabledとBackColorの制御をしています。

今は固定で値を打ち込んで動作させているのですが
もう少し汎用的にソースを書き直したいのですが
なかなかうまくいきません。

ちなみに固定で書いたソースはこんな感じです。

If chk_銀行コード.Value = vbChecked Then

      ''銀行&支店コード入力可
      tbx_銀行コード.Enabled = True
      tbx_銀行コード.BackColor = &H80000005

      tbx_本支店コード.Enabled = True
      tbx_本支店コード.BackColor = &H80000005

      tbx_カナ銀行名.Enabled = False
      tbx_カナ銀行名.BackColor = &H8000000F

      tbx_カナ支店名.Enabled = False
      tbx_カナ支店名.BackColor = &H8000000F

   Else

      ''銀行&支店名入力可
      tbx_銀行コード.Enabled = False
      tbx_銀行コード.BackColor = &H8000000F

      tbx_本支店コード.Enabled = False
      tbx_本支店コード.BackColor = &H8000000F

      tbx_カナ銀行名.Enabled = True
      tbx_カナ銀行名.BackColor = &H80000005

      tbx_カナ支店名.Enabled = True
      tbx_カナ支店名.BackColor = &H80000005

   End If

よい知恵があったらどなたか教えていただけないでしょうか?

投稿時間:2003/09/04(Thu) 15:48
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re: チェックボックスの制御
試してませんけど、以下ではどうでしょう?
ただ、分かり難いんであんまり良くないと思いますが、一応こういうやり方もあるってことで。


    Dim bChk As Boolean
    
    bChk = chk_銀行コード.Value = vbChecked
    
    With tbx_銀行コード
        .Enabled = bChk
        .BackColor = vbButtonFace + bChk * 10
    End With
    
    With tbx_本支店コード
        .Enabled = bChk
        .BackColor = vbButtonFace + bChk * 10
    End With
    
    With tbx_カナ銀行名
        .Enabled = Not bChk
        .BackColor = vbWindowBackground - bChk * 10
    End With
    
    With tbx_カナ支店名
        .Enabled = Not bChk
        .BackColor = vbWindowBackground - bChk * 10
    End With

投稿時間:2003/09/04(Thu) 16:21
投稿者名:相川
URL :
タイトル:
Re^2: チェックボックスの制御
nanashiさんありがとうございました。

ただ下記の部分がわかりません。
よろしければ、解説してほしいのですが
デバッグをかけて、Helpも見てみたのですが

なんで、bChkはBoolean型なのに数字を代入
すると、true/false切り替わるのでしょうか?

.BackColorのところに関してはまったく解りませんでした。

bChk = chk_銀行コード.Value = vbChecked

.BackColor = vbButtonFace + bChk * 10

投稿時間:2003/09/04(Thu) 17:17
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: チェックボックスの制御
イミディエイトウィンドウで 下記のように入力して Enter キーを押して見て下さい。

 ?false * 10,true * 10


結果 .BackColor の値はどうなりますか。

投稿時間:2003/09/04(Thu) 18:27
投稿者名:相川
URL :
タイトル:
解決しました。
> 解決しました。

>  イミデイトウインドウで参照したら、 false =0,true -10と表示
  されました。
>   BackColorの値と足したり引いたりして、色を変化させていたんですね。
  すごく勉強になりました。
  
  教えてくださった、nanashiさん 花ちゃんさんありがとうございました。      
>
>