• 締切済み

VBで選択問題・・・

VB6.0で、4択の選択問題を作っています。 タイトル画面・問題画面・判定画面をフォームで配置してます。 タイトル画面から、「問題へ」ボタンを押すと、問題画面に飛ぶんですが・・・ まず、問題画面の問題欄に問題が表示されません・・・ csvファイルを読み込みたいんですが、どうすれば1行ずつ読み込み処理できるんでしょうか?? そして、もうひとつは、オプションボタンで問題が選択され、判定ボタン押して、正解なら、次の問題へ行き、間違いなら、元の問題へ戻り・・・ としたいんですが・・・ その処理もどうしたらいいかわかりません・・・ どんなコードを書いたらいいんですかね? 簡単なコードでも提供してくれたらうれしいです。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

これは授業か何かの課題問題ですか。質問者のレベルが判らないが、問題のまる投げみたいで、本当は回答を出すか迷った。(<=どんなコードを書いたらいいんですかね?)シーケンシャルファイルを読み方が判らないレベルで、フォームやコントロールを使う 問題に着手は難しいとおもう。 >簡単なコードでも提供してくれたらうれしいです。=> コードに簡単もなにもない。動くか動かないか、です。 ロジックが思いつきやすいものかどうかはあると思います。 公のところに質問するのですから、もう少し質問文章の感じをピリッと。 ーーーーーーーーーーーーーーーーー VB6の環境に戻すのが面倒なので、エクセルVBAでやってみました。 準備 ファイルは 日本の首都は,京都,大津,東京,奈良,3 日本の首相は,森,小泉,田中,安倍,2 上野公園は,台東区,浅草区,豊島区,中央区,1 を用意しました。 問題1.csv で保存。 ーーーー UserFormを挿入(UserForm1) フォームの上に、ラベルを1つ配置(問題表示面用なので大きくしておく) フォームの上に、OptiomButtonを4つ配置(回答選択用) フォームの上に、CommandButtonを1つ配置(回答チェックの起動用) フォームの上に、OptiomButton4つ配置はラベルの左側で、ラベルへ出る質問の位置と水平にあわせて配置すること。 ----- エクセルVBE画面の標準モジュールに Public seikai Sub test01() Open "C:\Documents and Settings\XXXX\My Documents\問題1.csv" For Input As #1 While Not EOF(1) Line Input #1, a s = Split(a, ",") t = "" For i = 0 To UBound(s) - 1 t = t & " " & s(i) & Chr(10) & Chr(12) Next i seikai = s(UBound(s)) UserForm1.Label1.Caption = t UserForm1.Show Wend Close #1 End Sub -------- UserForm1のCommandButtonのクリックイベントに Private Sub CommandButton1_Click() b = Array(0, 1, 3, 4, 6) If Me.Controls("OptionButton" & b(seikai)) = True Then MsgBox "正解" Else MsgBox "誤答" For i = 1 To 4 Me.Controls("OptionButton" & b(i)) = False Next i Exit Sub End If Me.Controls("OptionButton" & b(seikai)) = False UserForm1.Hide End Sub ●VBA->VB6では、コントロール配列が使えるので If Me.Controls("OptionButton" & b(seikai)) はVB&ではIf Me.OptionButton((seikai)にできると思う。 ●b = Array(0, 1, 3, 4, 6)      <======必ずチェック はOptioButtonの貼り付けがうまくいかず 名前がOptioButton1,3,4,6となったので、 変換用で、本来うまくいけば、不要です。 4つのそれぞれのOptioButtonのプロパテイでNameを確認のこと。 ●Openの後のファイル名、パス名は自分の場合に合わせること。 ●簡単にするため、楽するために、手抜きしているところアリ。 ・ラベルに問題文を表示 ・正解・誤回答をMsgBoxで表示など ひと通り動くようになったら、改良してください。 ●Chr(10) & Chr(12)は、VB&ではvbCRLFが使えるでしょう。 以上エクセルでは動きましたが。

peche-one
質問者

お礼

ありがとうございました。 挑戦してみます。

関連するQ&A