こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル VBAのチェックボックスについて

お読みくださり、ありがとうございます。
エクセル初心者でございます。
エクセルのマクロなのですが、
お詳しい方、是非教えて欲しいです!汗

調子に乗って入力フォームなるものを作りました。

入力フォームの中にて、チェックボックスで「ある」「なし」の項目を入れてみたのですが、チェックしていないのに、値が入る現象が起きています汗

以下、素人が書いたコードを恥を承知で記載させていただきます。

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
OK = "○"

End If
End Sub

Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then
NO = "×"
End If

End Sub



Private Sub UserForm_Click()

End Sub

'以下のコードは、登録ボタンがクリックされたときの処理!

Private Sub 登録ボタン_Click()

If TextBox1.Text = "" Then
MsgBox "グッズ名を入力してください。"
Exit Sub
End If

If TextBox2.Text = "" Then
MsgBox "アプローチ先を入力してください。"
Exit Sub
End If







With Worksheets("協賛グッズ")
With Cells(Rows.Count, 2).End(xlUp)

.Offset(1, 0).Value = TextBox1.Text
.Offset(1, 1).Value = mori
.Offset(1, 2).Value = mori2
.Offset(1, 3).Value = TextBox2.Text
.Offset(1, 5).Value = TextBox3.Text
.Offset(1, 6).Value = TextBox4.Text
.Offset(1, 7).Value = TextBox5.Text
.Offset(1, 8).Value = TextBox6.Text


End With
End With



TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
CheckBox1.Value = False
CheckBox2.Value = False

End Sub

以上です。
おかしなところ満載かと思いますが、
チェックを入れた項目だけ値を入れたいと考えております。
おわかりになるかたおりましたら何卒お助けください汗

よろしくお願いいたします。

投稿日時 - 2016-05-18 17:28:05

QNo.9174389

すぐに回答ほしいです

質問者が選んだベストアンサー

先ほどの回答は、あくまでも例で、CheckBox2_Click にも同様の処理が必要ですがそれでも変わりませんか?
チェックを外した時に変数「OK」「NO」をクリアする処理で駄目ですと、根本的に見直しが必要になるかもしれません。
今のコードでは情報が足りません。

・CheckBoxとTextBoxの関連性が不明
・変数「OK」「NO」は何に使用している?
・「チェックしていないのに、値が入る」のはそもそもどこの話?

投稿日時 - 2016-05-18 18:23:54

お礼

大変申し訳ございません・・・
ちゃんと機能いたしました。
教えていただいたコードを入力し間違えていたようです。
深くお詫びするとともに、感謝を申し上げます!

ほんとうにありがとうございました!!

投稿日時 - 2016-05-18 21:14:50

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

コードの肝心な部分が無いので良く解りませんが、チェックボックス1・2共にチェックされたときの処理だけあって、チェックを外したときの処理がないのが原因ではないでしょうか?
つまり、変数「OK」「NO」の値は一度でもチェックをされるとその後チェックを外されても"○"、"×"のままです。
#それ以前に変数名に「OK」「NO」なんて紛らわしいものは使わない方が良いと思います。


コードをこんな風に変えるとどうですか?

Private Sub CheckBox1_Click()
  OK = ""
  If CheckBox1.Value = True Then
    OK = "○"
  End If
End Sub

投稿日時 - 2016-05-18 17:47:01

お礼

さっそく書き換えてみたのですが、
ダメでした汗
もし足りない情報ありましたらおしえてください汗

本当にご面倒おかけします汗

投稿日時 - 2016-05-18 18:04:26

あなたにオススメの質問