[[20120320182232]] 『チェックボックスについて』(春) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『チェックボックスについて』(春)

 Excel2003 = UserForm/チェックボックスの使い方で質問があります。
 ※チェックボックスは、はじめて使うのでチェックボックス選択がそもそも
   あっているのかから迷ってます。

 やりたいことは、
 ・頻繁にあることをチェックボックス(3個)をつくり選択しやすい状態にしたいです
 ・その他は、テキストボックスを1個作成してそこに入力します
 ・コマンドボタンを押したら、Sheet1のA2セルに表示したいのですが、
   (表示に関して)
     ・チャックボックスでチャックのついたものと、その他のテキストボックス欄の
    内容を頭に・をつけ改行して表示したく
   ・もしチェックボックスにチェックがついてなかったら、そしてテキストボックス
    欄になにも書かれてなかったら、"-"を表示したいのです。

 『例1』
  (UserForm)
 チャックボックス1 = りんご (チェック)
  チャックボックス2 = みかん (チェック)
  チャックボックス3 = すいか (チェック)
  テキストボックス = A店にて購入 (入力) →コマンドボタン押す
 ↓
  (Sheet1/A2セル)
  ・りんご
  ・みかん
  ・すいか
  ・A店にて購入  と記載したいです。

『例2』

  (UserForm)
 チャックボックス1 = りんご (チェックなし)
  チャックボックス2 = みかん (チェック)
  チャックボックス3 = すいか (チェックなし)
  テキストボックス = ”空欄” (入力なしの状態) →コマンドボタン押す
 ↓
  (Sheet1/A2セル)
  ・みかん     と記載したいです。
 
『例3』
  (UserForm)
 チャックボックス1 = りんご (チェックなし)
  チャックボックス2 = みかん (チェックなし)
  チャックボックス3 = すいか (チェックなし)
  テキストボックス = ”空欄” (入力なしの状態) →コマンドボタン押す
 ↓
  (Sheet1/A2セル)
  -                 と記載したいです。

 チェックボックスは、押すとチェックありなしを繰り返す状態にしたいです。

 宜しくお願い致します。


  再掲

 Private Sub CommandButton1_Click()
    Dim s As String
    Dim i As Long
    Dim ctrl As String

    For i = 1 To 3
        If Me.Controls("CheckBox" & i).Value Then
            s = s & ctrl & "・" & Me.Controls("CheckBox" & i).Caption
            ctrl = vbLf
        End If
    Next

    If Len(TextBox1.Value) > 0 Then s = s & ctrl & "・" & TextBox1.Value

    Range("A2").Value = s

 End Sub

 (ぶらっと)

 >チェックボックス選択がそもそもあっているのかから迷ってます。

 内容からすると、現在のチェックボックスの数は、3個ですね!!
 三つぐらいなら、チェックボックスでよいでしょうね・・・。

 でも、ここで拡張性という観点も考慮してください。

 今は、3個だけど、将来、この要素が増える可能性はないのか? です。
 その可能性が十分考えられるのであれば、リストボックスを使う事も
 検討してください。リストボックスならば、りんご、みかん、すいかの3要素を
 このコントロール一つで表示できますし、将来要素が増えても大丈V なんです。
 複数の選択が可能なので、リストボックス一つで複数のチェックボックスの代替が
 できます。よって、要素が増えることでのコード変更は、殆どないです。

 要素が増えることはあり得ないなら、チェックボックスを使う方が
 ビジュアル的に好まれることが多いようですよ、この掲示板では!!
 ↑これだって、立派な検討要素ですからねえ!!

 検討してみてください。

 ichinose


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.