一応、フォーム画面で、ボタンをクリックするとデータシートから
持ってきて、それを問題がなくなるまで繰り返したいのですが、うまく
いきません。
Private Sub cmd次_click()
Dim n As Integer
For n = 3 To Cells(Rows.Count, 1).End(xlUp).Row
txt設問.Value = Worksheets("データ").Cells(n, 1).Value
txt問1.Value = Worksheets("データ").Cells(n, 2).Value
txt問2.Value = Worksheets("データ").Cells(n, 3).Value
txt問3.Value = Worksheets("データ").Cells(n, 4).Value
txt問4.Value = Worksheets("データ").Cells(n, 5).Value
n = n + 1
Next n
End Sub
Private Sub cmd判定_click()
If op3.Value = True Then
txt正解.Value = "○"
Else
txt正解.Value = "×"
End If
End Sub
Private Sub cmd消去_Click()
txt設問.Value = ""
txt問1.Value = ""
txt問2.Value = ""
txt問3.Value = ""
txt問4.Value = ""
txt正解.Value = ""
op1.Value = ""
op2.Value = ""
op3.Value = ""
op4.Value = ""
End Sub
よろしければ、教えていただけないでしょうか?
No.2ベストアンサー
- 回答日時:
>フォーム中の、txt解答欄に1~4の数字を入力し・・・・・
>If txt解答.Value = Worksheets("データ").Cells(n, 6).Value Then
If txt解答.Value = cstr(Worksheets("データ").Cells(n, 6).Value) Then
textboxの値は数字を入力しても文字扱いになります(だからtextboxなのですよね)
多分、セルの値は数値扱いなのだと思います
同じ値が「1」でも文字と数値では比較が出来ないため、間違いとなってしまうのだと思います
そこで、どちらかにあわせる必要があります
textboxの値を数値化するのは空白の場合や間違って文字を入力された場合に
エラーが出るので、セルの値の方を文字列化します
余談:
セルに入力した値の場合はexcelの方でデータ型をあわしてくれるのですが
これが他にコントロールの値の場合は、各コントロールに定められているデータ型でしか出力できない仕様のようです
以上参考まで
なるほど、textboxに入力しているから、文字なのですね。
数字の3を入力したので、数字ばかりと思っていました。
また、textboxも空白や間違った文字の場合もあるので、データシートの方を文字列化するのですか。いや、びっくりです。
わたしの硬くなった頭が、すこし柔らかくなった気がします。
有り難うございました。
No.1
- 回答日時:
ボタン等の名前を変更したなら説明をしないと
回答者は分りませんよ
よく分かりませんが、こんなことがしたいのでは?
Dim n As Integer
Private Sub UserForm_Initialize()
n = 3
End Sub
Private Sub cmd次_click()
If Worksheets("データ").Cells(n, 1).Value = "" Then Exit Sub
txt設問.Value = Worksheets("データ").Cells(n, 1).Value
txt問1.Value = Worksheets("データ").Cells(n, 2).Value
txt問2.Value = Worksheets("データ").Cells(n, 3).Value
txt問3.Value = Worksheets("データ").Cells(n, 4).Value
txt問4.Value = Worksheets("データ").Cells(n, 5).Value
n = n + 1
End Sub
Private Sub cmd判定_click()
If op3.Value = True Then
txt正解.Value = "○"
Else
txt正解.Value = "×"
End If
End Sub
Private Sub cmd消去_Click()
txt設問.Value = ""
txt問1.Value = ""
txt問2.Value = ""
txt問3.Value = ""
txt問4.Value = ""
txt正解.Value = ""
op1.Value = ""
op2.Value = ""
op3.Value = ""
op4.Value = ""
End Sub
この回答への補足
エクセルで、四者択一問題を作成中です。
前回、回答していただいたお陰で、次々と問題を選択できるようになったのですが、
フォーム中の、txt解答欄に1~4の数字を入力し、cmd判定ボタンをクリックすると、データシートのN行目の6列目にある解答欄の数字と比べて、txt判定欄に正解か間違いを表示しようと考えているのですが、
If txt解答.Value = Worksheets("データ").Cells(n, 6).Value Then
txt判定.Value = "正 解"
Else
txt判定.Value = "間違い"
End If
間違いばかりが表示されて、正解が表示されません。
ちなみに、
TextBox6 = Worksheets("データ").Cells(n, 6).Value とすると
フォーム中のTextBox6にはtxt解答欄に入力した正解の“3”が表示されています。
どこが、悪いのでしょうか?
早速、回答していただき有り難うございます。
エクセルVBAの初心者で、テキストを見ながらの試行錯誤
状態だったので、大変助かりました。
頂いた回答内容を手本に、頑張ってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
昔のテレビっておっぱいが出て...
-
【バッチファイル】ホスト名を...
-
バンタンのDOPEの最初って ラプ...
-
TextBoxコントロールを引数とし...
-
複数のテキストファイルをエク...
-
東京ドームのコンサート、一番...
-
新大久保でTWICEの公式グッズが...
-
韓流ブームのせいで…
-
次の人達の骨格タイプわかる方...
-
Adobe Acrobat と Adobe Reader...
-
韓流好き妻の行動に怒り…私は狭...
-
少女時代の「Say Yes」とTWICE...
-
画面が突然真っ暗になり、すぐ...
-
SED等で文字列を抽出したい
-
TWICEさんはライブ中ファンの携...
-
LANボード2つ、チーミング機能...
-
ノンストップの音楽を途切れら...
-
韓流女と別れたい
-
水に映った月明かりを表す言葉
-
Red velvetのアイリーンって可...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
昔のテレビっておっぱいが出て...
-
複数のテキストファイルをエク...
-
【バッチファイル】ホスト名を...
-
Adobe Acrobat と Adobe Reader...
-
参照設定は2.8と6.0 6.1とどち...
-
TextBoxコントロールを引数とし...
-
バンタンのDOPEの最初って ラプ...
-
デスクチェア―のガスシリンダー...
-
VBAで○○:○○と表示させたいのに...
-
水に映った月明かりを表す言葉
-
韓流女と別れたい
-
韓流好き妻の行動に怒り…私は狭...
-
ジェームス・ブラウンのマント...
-
画面が突然真っ暗になり、すぐ...
-
imac2012ってまだ使えますか?...
-
latestの対義語
-
twiceのツウィちゃんの、この卒...
-
TWICEのライブについてです 母...
-
PCの不具合について
-
40代の方に質問をしたいんですが
おすすめ情報