-PR-
締切済み

途中でエラーが出てしまい手が止まってしまいました(T_T)

  • すぐに回答を!
  • 質問No.81093
  • 閲覧数42
  • ありがとう数1
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 28% (18/63)

Visual Basicについてなんですが、いいですか?
http://azsx00.tripod.co.jp/D001.jpg

初心者じみた質問ですみません。
上記の画像ののようなプログラムが途中までで引っかかってしまって先に進めません。
どなたかご指導下さい。
一応自分で考えた結果です。どこが悪いとか何が分かってないとかいろいろアドバイスもあればお願いします。まだ習い始めたばかりです。

Dim Number As Integer
Dim Score As Integer
Dim MessageText As String

Private Sub Command1_Click()
If Number > 7 Then
Score = Score + 1
MessageText "あたり"
End If
If Number < 7 Then
Score = Score - 1
MessageText "外れ"
End If
If Number = 7 Then
Score = Score + 0
MessageText "引き分け"
End If
End Sub

Private Sub Command2_Click()
If Number > 7 Then
Score = Score + 1
MessageText "あたり"
End If
If Number < 7 Then
Score = Score - 1
MessageText "外れ"
End If
If Number = 7 Then
Score = Score + 0
MessageText "引き分け"
End If
End Sub

Private Sub Form_Load()
Number = Rnd() * 13 + 1
Score = 0
Label1.Caption = "?"
Text1.Text = "Score:" & Score
End Sub

Private Sub Label1_Click()
If Number > 7 Then
Label1.Caption = "Score"
End If
If Number < 7 Then
Label1.Caption = "Score"
End If
End Sub
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル6

ベストアンサー率 14% (1/7)

文法的なミスだけですが...

MessageTextは変数ですから,
代入するには
MessageText = "あたり"

のように = が必要です。



ラベルにスコアを表示するには

Label1.Caption = CStr(Score)
とします。 "Score" ではこの文字が表示されます。


  • 回答No.2
レベル11

ベストアンサー率 34% (139/407)

私が気付いた部分を列挙しますね。

0.既にskogaさんがご指摘されているMessageTextは代入式に直してください。
1.Small(Large)ボタン押下時処理内で、乱数が7と同じ場合の処理でScore = Score + 0は意味がありません。
2.同じくSmall(Large)ボタン押下時処理内で、MessageTextを表示するメッセージボックスが無いので、当たったのか外れたのか判らないですね。
3.Label1_Click()処理は不要です。(この処理では、ラベルをクリックすると「?」マークが「Score」と言う文字に変わりますけど、仕様には無いですね。)
4.Small(Large)ボタン押下処理内で、「2.」の処理(メッセージボックスの表示)の前にLabel1のキャプションに設定されている乱数を表示する必要があります。
5.「2.」のメッセージボックス表示後に再度「?」を表示し、次の乱数を設定する必要があります。
6.各行の処理が何をしているのかを説明(コメント)を入れておいたほうがいいです。
  • 回答No.3
レベル12

ベストアンサー率 45% (210/459)

こんにちは。itohhといいます。

まずは、フローチャートを書いてみましょう。

あなたが、書いたソースでは仕様(URLにあるjpg)と違う動きになってしまいませんか?
1.「ゲームオーバー」はどこに行ったのでしょうか?
2.他にも仕様と違うところがありますよ。(あんまり、書いてしまうのもなんですから...)

まず、フローチャートを書いて動きを把握することから始めてください。
あと、「MessageText」ですが、仕様の文脈からするとMsgBox関数だと思いますよ。

それから、どういうときに、イベント(Form_LoadやCommand2_Clickなど)が動くのかもう一度調べてみてください。

勉強ガンバってくださいね。
補足コメント
mayumi617

お礼率 28% (18/63)

みなさんレス有り難う御座います。
言われたとおりに修正してみました。一応はエラーがでなくなりました。
しかしラベルの所に10という数字しか出てくれません。
どなたか見本プログラムを見せては頂けないでしょうか。
HTMLのように他人のwebサイトからテクニックを盗み取るみたいに
(いい方が汚いですね)、流れも勉強させていただきたいです。
投稿日時 - 2001-05-26 04:28:36
  • 回答No.4
レベル11

ベストアンサー率 34% (139/407)

見本プログラムではありませんが、処理を箇条書きすると以下のような感じですね。

<乱数設定>
1.乱数により1~13の値を設定する。
2.設定値を表示するラベルに「?」を表示する。

<フォーム表示時>
1.乱数設定処理を行う。

<ボタン1(Small)押下時>
1.当たり判定処理を行う。(判定、スコア、ゲームオーバー、設定乱数表示)
2.乱数設定処理を行う。

<ボタン2(Large)押下時>
1.当たり判定処理を行う。(判定、スコア、ゲームオーバー、設定乱数表示)
2.乱数設定処理を行う。

<当たり判定>
1.Small(Large)ボタン押下で設定されている乱数が7より小さい(大きい)場合、
  スコアに1点加算し、MessageTextに「当たり」を代入。
2.乱数が7と同値の場合は、MessageTextに「引き分け」を代入。
3.上記1.と2.に該当しない場合は、スコアを0にし、MessageTextに「外れ、
  ゲームオーバー」を代入。
4.スコアをテキストボックスに表示、乱数をラベルに表示し、メッセージボックス
  で、上記1.~3.に代入されたMessageTextを表示。
5.スコアが0の時はプログラムを終了。

上記の<>内が各サブルーチンになりますね。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ