
vb.netでCSVファイルからセルの文字列を読み込むプログラムを作成しているのですがLabel1.Text = strTemp1(1)の部分でインデックスが配列の境界外です。と表示されてしまい困っています。どうすればいいのか教えてください。
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objFile1 As New System.IO.StreamReader("Z:\traindata\言語.csv", System.Text.Encoding.GetEncoding("shift_jis"))
'ファイルを指定して読み込むためのオブジェクト
Dim strLine1 As String 'ファイルから読み取った全駅名の文字列を格納する
Dim strTemp1() As String 'strLine1からデータを受け取り、配列にする
Dim strData1 As String 'strTemp1の配列したデータを受け取る
Dim Lineno1 As Integer 'CSVファイルから読み込みたい列の値を格納する
Dim linesta As Integer 'aを整数型で宣言をしてそれと同時にstrTempの配列を指定して、文字の最大値を返す。End Class
Lineno1 = 1 'CSVファイルから読み込みたい列を指定する
strLine1 = objFile1.ReadLine() 'objFile1に1行分の文字を読み込んで配列にして、strLine1に格納する
While (strLine1 <> "") 'strlineが空白""と等しくない限り処理を続ける
strTemp1 = Split(strLine1, ",") 'strLine1とカンマで区切られたファイルの文字列から配列を作成してstrtemp1に格納する
For intCnt = 0 To UBound(strTemp1) 'カウンタintcatが0からstrtemp1の添字の最大値以下(csvファイルに入力された終着駅の行番号)である間,処理を繰り返し行う
strData1 = strData1 + strTemp1(intCnt) 'strData1にstrTemp1の配列カウンタintcatとstrData1を足して代入する
Next
If Lineno1 = 2 Then 'Lineno1に格納したCSVファイル内の空白を除いた文字列から2列目を指定して読み込む
Label1.Text = strTemp1(1) '(列車番号を示すLabel1の内容)
End If
' csvファイルを閉じる
strLine1 = objFile1.ReadLine() 'objFileを読み込んで配列にしてstrLineに格納する
Lineno1 = Lineno1 + 1 ' Lineno と 1を足してLinenoに代入する
End While
End Sub
End Class
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
表にフィルターをかけ、絞った...
-
【VBA】ユーザーフォーム リス...
-
16進数から2進数へ
-
配列に画像を格納
-
array関数で格納した配列の型を...
-
FileListBoxでの複数ファイル選択
-
[エクセル]連続する指定範囲か...
-
[VBA]改行入りのセルの値を配列...
-
C#での動的配列作成方法について
-
VB6.0 ファイルの一括読込み
-
INDEX(D:D,L3)の意味は?
-
エクセルの関数 一列おき 文...
-
【C#】二次元配列へのcsvファイ...
-
Excelでエラー#N/Aを含む最小値...
-
C#で、引数における一次元と二...
-
csv形式のファイルを配列に...
-
ExcelのINDEXとMATCH関数でスピ...
-
EXCEL VBA カンマ区切りの文字...
-
Vba Validationの選択状態を知...
-
CSVファイルの読み込みと表示(V...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、絶対値の平均を算...
-
[エクセル]連続する指定範囲か...
-
Excelのセルの色指定をVBAから...
-
ExcelのINDEXとMATCH関数でスピ...
-
表にフィルターをかけ、絞った...
-
array関数で格納した配列の型を...
-
【VBA】ユーザーフォーム リス...
-
配列がとびとびである場合の書き方
-
DataSetから、DataTableを取得...
-
読み込みで一行おきに配列に格納
-
エクセルでエラーを無視して一...
-
VBAでの100万行以上のデータの...
-
.NET - 配列変数を省略可能の引...
-
iniファイルのキーと値を取得す...
-
Excel オートフィルタのリスト...
-
SUMPRODUCT関数を用いた最小値
-
VBA 配列に格納した値の平均の...
-
Datatableへの代入
-
VB6.0 ファイルの一括読込み
-
[VBA]改行入りのセルの値を配列...
おすすめ情報