お世話になります。
VB6で、データ処理を行いたいと思っています。データを読み込んで、列ごとに配列へ格納することを考えています。
しかし、データによって列の数が異なっており、行き詰ってしまいました。
最初は3列のデータだったので、単に
Input #(ファイル番号), A(i), B(i), C(i)
としたのですが、後になって6列やら、8列のデータが出てきて、通用しなくなりました。
そこで、LineInputで1行ごとに読み込み、Splitを使って値を列ごとに配列へ格納しようと考えました。
しかし、データを見ると値を区切っている空白は複数(3~8程度)で、
うまくSplitできませんでした。
以前にも、VB.NETの場合での似たような質問がされていましたが、VB6ではどのようにしたらよいのでしょうか。
当方初心者なのでお恥ずかしい質問ですが、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
複数スペースでも配列にセットする関数を作ってみました。
十分動作確認したわけではないので、参考程度としてください。
Private Sub CommandButton1_Click()
Dim strSrc As String
Dim strDst() As String
strSrc = "ABC DEF GHI JKLMN"
strDst = split2(strSrc, " ")
End Sub
Private Function split2(ByVal strSrc As String, ByVal strDelimiter As String) As String()
Dim iTop As Integer
Dim iEnd As Integer
Dim iIndex As Integer
Dim strDst() As String
iIndex = 0
iTop = 1
Do
iEnd = InStr(iTop, strSrc, strDelimiter)
ReDim Preserve strDst(iIndex)
If iEnd = 0 Then
strDst(iIndex) = Mid(strSrc, iTop)
Else
strDst(iIndex) = Mid(strSrc, iTop, iEnd - iTop)
iIndex = iIndex + 1
iTop = iEnd + 1
Do While Mid(strSrc, iTop, 1) = strDelimiter
iTop = iTop + 1
Loop
End If
Loop While iEnd <> 0
split2 = strDst
End Function
回答、ありがとうございました。
完璧でした。質問して良かったです。
こんな方法があるなんて思いもしませんでした。とても勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Visual Basic(VBA) セルが空白だった時の処理 5 2022/09/01 07:07
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[エクセル]連続する指定範囲か...
-
Excelのセルの色指定をVBAから...
-
ExcelのINDEXとMATCH関数でスピ...
-
Excelのオートフィルタで抽出し...
-
[VBA]改行入りのセルの値を配列...
-
DataSetから、DataTableを取得...
-
array関数で格納した配列の型を...
-
Excel オートフィルタのリスト...
-
VBA listBoxについて
-
表にフィルターをかけ、絞った...
-
Excel VBA 配列の分割について
-
エクセルで、絶対値の平均を算...
-
VB6・Split関数・連続した空白...
-
csv形式のファイルを配列に...
-
【C#】二次元配列へのcsvファイ...
-
EXCEL VBA 2次元配列に格納さ...
-
.NET - 配列変数を省略可能の引...
-
配列のSession格納、及び取得方...
-
[マクロ]配列を区切り文字で変...
-
エクセルVBAで変数をセルに一行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのINDEXとMATCH関数でスピ...
-
array関数で格納した配列の型を...
-
Excelのセルの色指定をVBAから...
-
[エクセル]連続する指定範囲か...
-
エクセルで、絶対値の平均を算...
-
VBA listBoxについて
-
表にフィルターをかけ、絞った...
-
VBA 配列に格納した値の平均の...
-
iniファイルのキーと値を取得す...
-
[VBA]改行入りのセルの値を配列...
-
配列がとびとびである場合の書き方
-
エクセルでエラーを無視して一...
-
DataSetから、DataTableを取得...
-
Excel オートフィルタのリスト...
-
Split関数でLong配列に格納する...
-
読み込みで一行おきに配列に格納
-
VB6.0 ファイルの一括読込み
-
SUMPRODUCT関数を用いた最小値
-
INDEX(D:D,L3)の意味は?
-
Dictionaryを使い4つの条件の一...
おすすめ情報