型?


リー  2005-07-03 02:43:23  No: 123201

文字列 "ok" から型 'Integer' へのキャストが有効ではありません。
は何?どういったエラーなんです?


LESIA  2005-07-03 02:52:15  No: 123202

型'Integer'は数値なので、文字列"ok"を数値にすることは出来ないという
ことでは?


暑くてバテバテ  2005-07-03 02:54:50  No: 123203

環境とエラーが発生した箇所のコードをどうぞ!!


リー  2005-07-03 02:55:44  No: 123204

じゃどうすれば、最初、数値が入っていた、ラベルに文字列"ok"を入れられるんですか?


暑くてバテバテ  2005-07-03 02:59:12  No: 123205

数値が入っていたラベルではなく数値に見える文字列が入っている
ラベルだと思います。


通ってみた  2005-07-03 05:19:38  No: 123206

Labelだったら普通に

Label1.caption = "ok"

でも

Label1.caption = "100"

でも
・・・どこに問題が?


LESIA  2005-07-03 19:04:53  No: 123207

Labelに文字列を入れるだけなら、最初に入っていたのが
何かは関係ないと思います。

VB6だと暗黙の型変換がおこなわれるので、VB.NETだと
思いますが、どういうコードを書いてエラーになるの
かを掲示していただけないと適切な回答は得られない
ですよ。


マグ  2005-07-03 20:56:41  No: 123208

キャストに関してのエラーが発生するなら、VB.NETの可能性が高いと思います。
それに質問でIntegerと記載されている時点でVB.NETですし・・・

>Labelに文字列を入れるだけなら、最初に入っていたのが
>何かは関係ないと思います。
推測ですが、リーさんは
TextBox2.Text = CInt(TextBox1.Text)

TextBox2.Text = CType(TextBox1.Text, Integer)
どちらかをしたかったのかな?と思います。

私なら
Try
    TextBox2.Text = CType(TextBox1.Text, Integer)
Catch ex As Exception
    TextBox2.Text = 0
End Try
のように組むかも?
もっといいコーティング方法があるかも?


マグ  2005-07-03 21:01:08  No: 123209

あっ・・・・
すみません。
4番目のレスを読み飛ばしていました。
上に記載したソースと無関係でした。


特攻隊長まるるう  2005-07-04 23:08:49  No: 123210

>じゃどうすれば、最初、数値が入っていた、ラベルに文字列"ok"を入れられるんですか?
いや、ラベルは関係ないと思うよ。
エラーの文章通りなら、"ok"という文字を数値型に変換しようとして失敗してる
ワケだから、ラベルの文字を数値型の変数に入れようとしているコードがある
んじゃない?1行1行ステップ実行して、エラーの発生している行を特定して下さい。
そこのコードが悪いと思われます。


マグ  2005-07-05 02:28:28  No: 123211

>じゃどうすれば、最初、数値が入っていた、ラベルに文字列"ok"を入れられるんですか?

質問の意味が分かったかも?
もしかして・・・・
「Integerで宣言されている変数にラベルの文字列"ok"をどうすれば入れることが
出来ますか?」という質問でしょうか?
それで、エラーが「文字列 "ok" から型 'Integer' へのキャストが有効ではありません。」
ということですか?

もし、こういう質問なら、提示したソースが合ってました。
TextBox2がIntegerで宣言された変数
TextBox1がラベルの文字列で・・・・・
Try
    TextBox2.Text = CType(TextBox1.Text, Integer)
Catch ex As Exception
    TextBox2.Text = 0
End Try


特攻隊長まるるう  2005-07-05 04:13:27  No: 123212

うーにゅ。そこは Try〜Catch で取るようなエラーではないので
[VB.NET]
        With Me.TextBox1
            If IsNumeric(.Text) Then
                Me.TextBox2.Text = CStr(CInt(.Text))
            Else
                Me.TextBox2.Text = "0"
            End If
        End With
つか、サンプルプログラムとして分かり難くなってる気も…。
こっちで想像するより質問者がコード出してくれるのを待った
方が早いと思います。

型が分からない(or 曖昧な)人はファイルの先頭に
[VB6.0]
Option Explicit
[VB.NET]
Option Strict On
…って書いて下さい。って気もしますが。

話は変わりますが、最初、マグさんの
    TextBox2.Text = CInt(TextBox1.Text)
のコードの意味が分からなかったけど『数値として有効なら
整数に修正する』って意味ならアリなんですね。


マグ  2005-07-06 01:47:42  No: 123213

>話は変わりますが、最初、マグさんの
>TextBox2.Text = CInt(TextBox1.Text)・・・

聞かれてみれば、何も考えずに使っていましたw
文字列型から数字型への変換に使っていることが多いです。

ところで、リーさんからの連絡がありませ〜ん。
もしかして・・・・質問に対しての返答が難しすぎた?
もしくは、すでに解決したとか・・・・・
推測ですが・・・・・・


いな  2005-07-06 02:41:57  No: 123214

返事が難しい場合、その旨を書くはず、
きっと解決報告もしないまま、放置

推測ですが...


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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