[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別フォームへのコード記述』(ここ)
VBAのユーザーフォームで、クイズを出題するシステムを作っています。
問題の科目をシートごとに分けて、問題番号、問題、正誤判定、解説をそれぞれセルに記述しています。
解説画面を作っているのですが、問題を出題するフォームからそのまま解説画面のフォームのコードを記述したいと考えています。
問題を生成するところでは
Public Sub setQuizData()
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
rowNo = Int((LastRow - 1 + 1) * Rnd + 1)
If S = 4 Then
quizText.Text = Sheet1.Cells(rowNo, 2)
Else
Set ws = Worksheets("Sheet" & S)
quizText.Text = ws.Cells(rowNo, 2)
End If
科目を選ぶ画面で科目に応じた変数を使用してシート名を選ぶようにし、ランダムに問題番号を選び、問題を記述したセルをテキストボックスに表示するコードを作りました。
quizText.Text = ws.Cells(rowNo, 2)の部分をそのまま利用して解説画面に持っていきたいのですがどうすればよいのかわかりません。
よろしくお願い致します。
< 使用 Excel:Excel2013、使用 OS:Windows10 >
(ここ) 2017/12/11(月) 14:51
あと、気になるのが、問題数を数えるのがA列なのに、問題を取り出すのはB列になっている点。両方共B列(2列目)を使えば良さそうに見えるのですが…。(まぁ、間違えていたとしても、常に先頭しか表示されない、となるだけなので、これが原因ではなさそう)
(???) 2017/12/11(月) 15:12
(ここ) 2017/12/12(火) 10:30
(???) 2017/12/12(火) 11:54
Dim A
Public Sub setQuizData()
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
A = Int((LastRow - 1 + 1) * Rnd + 1)
If S = 4 Then
quizText.Text = Sheet1.Cells(A, 2)
Else
Set ws = Worksheets("Sheet" & S)
quizText.Text = ws.Cells(A, 2)
End If
End Sub
Private Sub UserForm_Initialize()
Randomize
setQuizData
End Sub
Private Sub ans1_Click()
If Sheet1.Cells(A, 3) = 1 Then
Sheet4.Cells(1, 2) = "〇"
Else
Sheet4.Cells(1, 2) = "×"
End If
End Sub
Private Sub ans2_Click()
If Sheet1.Cells(A, 3) = 2 Then
Sheet4.Cells(1, 2) = "〇"
Else
Sheet4.Cells(1, 2) = "×"
End If
End Sub
Private Sub CommandButton3_Click()
Me.Hide
解説0.Show
End Sub
Public Sub setTextBox()
Set ws = Worksheets("Sheet" & S)
TextBox1 = ws.Cells(A, 4)
End Sub
Private Sub UserForm_Initialize()
setTextBox
End Sub
Private Sub CommandButton2_Click()
Me.Hide
解説1.Show
End Sub
(ここ) 2017/12/12(火) 14:09
(ここ) 2017/12/13(水) 11:17
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.