[[20070422091514]] 『ユーザーフォーム中の複数のチェックボックスを…』(めっしぃ) ページの最後に飛ぶ

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

 

『ユーザーフォーム中の複数のチェックボックスを…』(めっしぃ)

はじめまして VBA初心者のめっしぃと申します。いろいろと調べたのですが、どうしても分からないのでご教授下さい。

ユーザーフォームの中に8個チェックボックス(オブジェクト名;CheckBox1〜8)、(Caption:ア〜ク)を配置しました。
そして、以下の2つの事をしたいのですが、うまく動作しません。

1.新規入力ボタンを押すと、8個のチェックボックスをすべてオフにしたい

 Private Sub New_Click() ’新規入力ボタンを押すと
  With Me
   .Checkbox1.Value = False
   .Checkbox2.Value = False
            :
   .Checkbox8.Value = False
  End With
 End Sub

と書くのは、チェックボックスが増えたときに大変なので、変数を用いて…

 Private Sub New_Click() ’新規入力ボタンを押すと
  With Me
   Dim i As Integer
    For i = 1 To 8
     "CheckBox" & i.Value = False
    Next i
  End With
 End Sub

と書いても、うまく動きませんでした。解決方法をご教授下さい。

2.CheckBox1〜8のうち複数をチェックし、登録ボタンを押すと、チェックされているすべてのチェックボックスのCaptionをG3セルに入力したいと思っています。
つまり、CheckBox1と3と8にチェックをした場合、G3セルに「ア,ウ,ク」と表示させたいのです。

諸先輩方からのアドバイスをお願い致します。


 .Controls("CheckBox" & i).Value = False
 に変更してください。
 (seiya)

seiya 様

早速、ご教授していただきありがとうございました。
問題1は無事に解決しました。さて、問題2をどのように解決しようか考え中です。
(めっしぃ)


 For i = 1 To 8
      With Me.Controls("CheckBox" & i)
           If .Value = True Then msg = msg & .Caption & ","
      End With
 Next
 If Len(msg) Then Range("G3").Value = Left$(msg,Len(msg)-1)
 とかですか?
 (seiya) 

seiya 様

またまたご教授していただき、ありがとうございます。
試したところ、msgのところが反転し「コパイルエラー 変数が定義されていません」と表示されてしまいました。

少し勉強をし、1つ(CheckBox1)だけならG3セルに「ア」を入力させることが出来ましたが、CheckBox1と3と8をチェックして、「ア,ウ,ク」と複数入力することが出来ません。

 Private Sub Touroku_Click()
 Dim binCheck As Boolean 'チェックボックスの選択状態
 binCheck = Controls("Checkbox1").Value 'チェックボックスが選択されたか選択解除されたか取得       

  'ワークシートに転記する
    With Me
    If bincheck = true then
       Range(G3).Value = .Checkbox1.Caption         
    Else
       Range(G3).Value =""
    End If
    End With    
End Sub

なにかよい解決方法はあるでしょうか?(めっしぃ)


 Dim Statement で 変数 msg を宣言してください。
 (seiya)

コメント返信:

[ 一覧(最新更新順) ]


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