はじめまして、私はVB勉強中の魚武という者です。
今日VBの入門雑誌のプログラムを改良して以下のプログラム組みました。
Private Sub cmdgo_Click()
n = txtName.Text
If n = "" Then
lblMessage.Caption = "名前を教えてください"
Else
If nako.Value Then
Ainu = "ナコルルです。"
ElseIf rimu.Value Then
Ainu = "リムルルだよっ。"
Else
Ainu = "レラよ。"
End If
If morning.Value Then
Time = "おはようございます"
ElseIf afternoon.Value Then
Time = "こんにちは"
Else
Time = "こんばんは"
End If
lblMessage.Caption = n & "さん、" & Time & "。私は" & Ainu & ""
End If
End Sub
しかし、『Time =』の部分で「実行時エラー '13'; 型が一致しません。」
と表示されてプログラムが正常に起動しません。
いったいこれはどのようなエラーなのでしょうか?
そしてこのエラーはどうすれば解決するのでしょうか?
回答の程よろしくお願いします。
> いったいこれはどのようなエラーなのでしょうか?
※変数の宣言がないように見えますが、ちゃんと宣言していますか?
宣言していないのならば、ちゃんと宣言することをお勧めします
一般に「エラー」といっても、開発時に分かるエラーと実行時に分かるエラーがあります。
前者の開発時に分かるエラーは、コンパイラがコンパイル時に(型や引数、構文などなどの)チェックをして見つかります。
後者の実行時に分かるエラーは、実行時に動的に分かる/変わるものがなんらかの例外を発することで発生します。(たとえばファイルを開けないとか)
今回の実行時例外は「代入できないものに代入した」というものです。
もともと「Time」という単語はDateTimeモジュールに予約されている、プロパティの名前です。
なので思ったとおりに動いてくれなかったわけですね。
> そしてこのエラーはどうすれば解決するのでしょうか?
うーん、とりあえず勉強を(ry
さておき、とりあえず名前を変えてみてはいかがでしょう?(たとえば、local_Timeと宣言してみるとか)
あと、一点
> プログラムが正常に起動しません。
という文句ですが、これは思い違いです。
プログラムは「思ったとおりに動かない」のは当たり前で、もっと言えば「書いたとおりに動く」のが正常です。
なので、「プログラムが正常に動かない」状態というのは「書いたとおりに動かない」状態を指します。(少なくとも、私の中では)
細かいことに感じるかもしれませんが、このことを肝に銘じて勉強していってください。
必ず後で役に立つと思います。
>> そしてこのエラーはどうすれば解決するのでしょうか?
>うーん、とりあえず勉強を(ry
>さておき、とりあえず名前を変えてみてはいかがでしょう?(たとえば、local_Timeと宣言してみるとか)
試しにTimeをlocal_Timeに変更すれば正常に起動しました!
そして色々とアドバイスを頂き本当にありがとうございました。
ツイート | ![]() |