vb6です。ラベル3つとテキストボックス3つをフォーム上に配置して、既存のmoji.xlsファイルから単語(cupなどの英字)をランダムに取得し、単語 空白 単語というふうにラベルに表示しています。
この表示された文字をテキストボックスに入力してもらい、最後の文字まで一致したら終了というふうにしたいのですがどうしたらよいでしょうか?
Keydownを使用して判定したいのですが。
Dim i, j As Integer
Private Sub Command1_Click()
On Error Resume Next
Dim strWork As String
Dim objWork As Object
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("E:\moji.xls")
Set xlSheet = xlBook.Worksheets(1)
Set objWork = Label1
Randomize
n = 0
For n = 0 To 5
i = Int(Rnd * 10) + 1
j = Int(Rnd * 10) + 1
strWork = " " & xlSheet.Cells(i, j).Value
If objWork.Width < Me.TextWidth(objWork.Caption) + Me.TextWidth(strWork) Then
If objWork.Name = "Label1" Then
Set objWork = Label2
ElseIf objWork.Name = "Label2" Then
Set objWork = Label3
End If
End If
objWork.Caption = objWork.Caption & strWork
Next n
xlBook.Close
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
私だったらChangeイベントを利用するかなぁ
ラベルの文字数とテキストボックスの文字数が同じもしくは超えた場合のみ、ラベルの文字とテキストボックスの文字が一緒か判定すれば済むと思います
実際にどのようなプログラムをくむのですか?
>実際にどのようなプログラムをくむのですか?
Private Sub Text1_Change()
If (Len(Label1.Caption) <> Len(Text1)) Then Exit Sub
If Label1.Caption = Text1 Then
MsgBox "OK"
End If
End Sub
かな・・・
この程度の日本語→VB言語の変換ができないようでは・・・まだまだ
やってみてから質問をしましょう
逆に質問時のプログラムはどうつくったのか疑問
ついでですが、
>Dim i, j As Integer
これだと変数iはVariant型ですよ
ツイート | ![]() |