• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UBoundに配列がありませんとエラーがでます)

配列がありませんとエラーが出る理由とは?

このQ&Aのポイント
  • 以下のコードを実行すると、UBoundに配列がありませんというエラーが出ます。
  • エラーが出る原因は、strLine(i)にデータが入っていないことです。
  • strLine(i)の値を確認し、適切な値が入っているかどうかを確認してください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 その質問だけでは、コードとしては成立しないと思いますが……。 '------------------------------------------- 'ここからの書き出しでは、分かりません。 strLine(i) = "θinj = ゜BTDC,λ=2.0,KS=20%,TIM= ゜BTDC,DUR= ゜CA,dPg= MPa,Pme= MPa,ne= rpm,Pex= MPa" 'データシートに系列はきだし strKeiretu = Split(strLine(i), ",") '------------------------------------------- そのコードの前はどうなっているのでしょうか。 この質問だけで、解決は難しいと思います。 たとえば、このような変数の宣言があるとか。 Dim strLine(10) As String Dim i As Long Dim strKeiretu As Variant こちらが勝手にコードが通るように書き換えることはできますが、strLine(i)というのには、それなりの意図があるはずです。 ただ、今の情報の延長上には、どのようにしても、 >UBoundに配列がありませんというエラーがでます というようなエラーは発生しません。Split 関数の「Delimiter」を間違えなければ、という条件ですが。質問の範疇では分かりません。

ddtqp
質問者

お礼

回答ありがとうございます。 今、エラー原因をみつけました。 >Dim strKeiretu As Variant 上記が正しいです。 →Dim strKeiretu As Stringになってました。 変数の宣言エラーでした。助かりました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

>UBoundに配列がありませんという・・ 質問者がエラーコメントを思い込みで解釈して書いていませんか。 Googleを調べてもこのエラーの話題は、この質問のみしか出ません。 「インデックスの有効範囲にありません」などではないですか。 ーー 変数 i は、この質問のコードの最初以前に、しかるべき整数が決ってますか。いを具体数化するとエラー無く走り、特におかしいところは見つからなかった。 私のテストコード Sub test01() Dim strLine(10) Erase strLine i = 1 strLine(i) = "θinj = ゜BTDC,λ=2.0,KS=20%,TIM= ゜BTDC,DUR= ゜CA,dPg=" W = "MPa,Pme= MPa,ne= rpm,Pex= MPa" strLine(i) = strLine(i) & W strkeiretu = Split(strLine(i), ",") 'Erase strkeiretu For j = 0 To UBound(strkeiretu) MsgBox strkeiretu(j) If j <= 3 Then MsgBox j & " =1" If j >= 4 And j <= 7 Then MsgBox j & " =2" If j >= 8 Then MsgBox j & " =3" Next j End Sub

すると、全ての回答が全文表示されます。
回答No.2

Dim strLine As String, strKeiretu, j As Integer strLine = "θinj = ゜BTDC,λ=2.0,KS=20%,TIM= ゜BTDC,DUR= ゜CA,dPg= MPa,Pme= MPa,ne= rpm,Pex= MPa" strKeiretu = Split(strLine, ",") For j = 0 To UBound(strKeiretu) MsgBox strKeiretu(j) Next というコードで問題なく動作します。 なので、「strLine(i)」には「"θinj = ゜BTDC,λ=2.0,KS=20%,TIM= ゜BTDC,DUR= ゜CA,dPg= MPa,Pme= MPa,ne= rpm,Pex= MPa"」のような感じのデータは入っていないと思います。 エラー時には、strLine(i)には実際のところどういう値が入っているのでしょう?

ddtqp
質問者

お礼

回答ありがとうございます。 そうですねぇ。見た感じ問題ないんですけど。 エラー時には実際、 「"θinj = ゜BTDC,λ=2.0,KS=20%,TIM= ゜BTDC,DUR= ゜CA,dPg= MPa,Pme= MPa,ne= rpm,Pex= MPa"」 が入っています。

すると、全ての回答が全文表示されます。
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>strLine(i)には以下のような漢字でデータが入っています。 >strLine(i) = "θinj = ゜BTDC,λ=2.0,KS=20%,TIM= ゜BTDC,DUR= ゜CA,dPg= MPa,Pme= MPa,ne= rpm,Pex= MPa" " が多すぎるのでは strLine(i) = "θinj = BTDC,λ=2.0,KS=20%,TIM= BTDC,DUR= CA,dPg= MPa,Pme= MPa,ne= rpm,Pex= MPa"

ddtqp
質問者

お礼

回答ありがとうございます。 テキストデータの中身のことですね。 "(ダブルクォーテーション)ではなくて°(ド)です。

すると、全ての回答が全文表示されます。

関連するQ&A