「実行時エラー '13';」について

解決


魚武  2006-05-29 09:11:58  No: 131607

はじめまして、私は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';  型が一致しません。」
と表示されてプログラムが正常に起動しません。

いったいこれはどのようなエラーなのでしょうか?
そしてこのエラーはどうすれば解決するのでしょうか?

回答の程よろしくお願いします。


ガッ  2006-05-29 09:52:22  No: 131608

> いったいこれはどのようなエラーなのでしょうか?
※変数の宣言がないように見えますが、ちゃんと宣言していますか?
  宣言していないのならば、ちゃんと宣言することをお勧めします
一般に「エラー」といっても、開発時に分かるエラーと実行時に分かるエラーがあります。
前者の開発時に分かるエラーは、コンパイラがコンパイル時に(型や引数、構文などなどの)チェックをして見つかります。
後者の実行時に分かるエラーは、実行時に動的に分かる/変わるものがなんらかの例外を発することで発生します。(たとえばファイルを開けないとか)
今回の実行時例外は「代入できないものに代入した」というものです。
もともと「Time」という単語はDateTimeモジュールに予約されている、プロパティの名前です。
なので思ったとおりに動いてくれなかったわけですね。

> そしてこのエラーはどうすれば解決するのでしょうか?
うーん、とりあえず勉強を(ry
さておき、とりあえず名前を変えてみてはいかがでしょう?(たとえば、local_Timeと宣言してみるとか)

あと、一点
> プログラムが正常に起動しません。
という文句ですが、これは思い違いです。
プログラムは「思ったとおりに動かない」のは当たり前で、もっと言えば「書いたとおりに動く」のが正常です。
なので、「プログラムが正常に動かない」状態というのは「書いたとおりに動かない」状態を指します。(少なくとも、私の中では)
細かいことに感じるかもしれませんが、このことを肝に銘じて勉強していってください。
必ず後で役に立つと思います。


魚武  2006-05-29 10:04:22  No: 131609

>> そしてこのエラーはどうすれば解決するのでしょうか?
>うーん、とりあえず勉強を(ry
>さておき、とりあえず名前を変えてみてはいかがでしょう?(たとえば、local_Timeと宣言してみるとか)

試しにTimeをlocal_Timeに変更すれば正常に起動しました!

そして色々とアドバイスを頂き本当にありがとうございました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加