「みんな教えて! 選手権!!」開催のお知らせ

b=111.222
a = split(b , ".")
⇒ a(0) = 111 a(1)=222

b=333
a = split(b , ".")
⇒ a(0) = 333 a(1)=333

このような結果が得られるのでしょうか。
それとも区切り文字がない場合、a(0)、a(1)を使用するとコンパイルエラーでしょうか。

A 回答 (4件)

やってみればいいと思うが・・・。



b=111.222
a = split(b , ".")
⇒ a(0) = 111 a(1)=222

これはいい。

b=333
a = split(b , ".")
⇒ a(0) = 333 a(1)=333

「実行時エラー'9':インデックスが有効範囲にありません。」

なお、Split関数は、文字列を扱うのだから、

dim a() as string,b as string

b="111.222"
a = split(b , ".")

のように指定した方がいいと思うが、どうだろう。
    • good
    • 3
この回答へのお礼

ありがとうございます。
まだ環境が整ってなくコンパイルできません。言語はvb.netです。

実は体重を入力して、整数部2桁、小数点1桁の入力チェックを行うため、
split関数を使用して、その後に入力チェックを行うようにしていました。
皆さんの回答からすると、a(0)、a(1)を入力チェックしているので
小数点が入力されなかった場合にコンパイルエラーになってしまいます。
入力チェックを行う前に、入力された文字列に対して
Containsを用いて小数点が含まれているかのチェックをするのが最善でしょうか。

お礼日時:2011/07/26 14:32

NO1です。


UBound ( a )で配列の要素数(0相対)が判るので文字列判定しなくてもよいと思いますが如何でしょうか。
    • good
    • 1
この回答へのお礼

ありがとうございます。
まとめまして再度確認させていただきます。

お礼日時:2011/07/28 10:59

VBAか.NETか質問に明記してほしいが。


VBAなどでは、こういう場合のことのためにUBOUND()があるのを知らないのかな。
Sub test01()
a = "333"
'a = "333,2"
x = Split(a, ",")
For i = 0 To UBound(x)
MsgBox x(i)
Next i
End Sub
をやってみればわかる。適当な例を'a = "333,2"のところに入れて、他をコメントアウトして実行してみたら。
ーー
VB.NET系では
http://homepage1.nifty.com/rucio/main/dotnet/sho …
など参照。Length。
    • good
    • 0
この回答へのお礼

ありがとうございます。
まだ環境が整ってなくコンパイルできません。言語はvb.netです。

実は体重を入力して、整数部2桁、小数点1桁の入力チェックを行うため、
split関数を使用して、その後に入力チェックを行うようにしていました。
皆さんの回答からすると、a(0)、a(1)を入力チェックしているので
小数点が入力されなかった場合にコンパイルエラーになってしまいます。
入力チェックを行う前に、入力された文字列に対して
Containsを用いて小数点が含まれているかのチェックをするのが最善でしょうか。

お礼日時:2011/07/26 14:33

a(0)はOK、a(1)は実行時エラーです、ご自身で検証すればすぐに判ります。


それで真のご質問は何でしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
まだ環境が整ってなくコンパイルできません。言語はvb.netです。

実は体重を入力して、整数部2桁、小数点1桁の入力チェックを行うため、
split関数を使用して、その後に入力チェックを行うようにしていました。
皆さんの回答からすると、a(0)、a(1)を入力チェックしているので
小数点が入力されなかった場合にコンパイルエラーになってしまいます。
入力チェックを行う前に、入力された文字列に対して
Containsを用いて小数点が含まれているかのチェックをするのが最善でしょうか。

お礼日時:2011/07/26 14:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A