• ベストアンサー

テキストファイルを一行づつとる方法

テキストファイルを一行だけとる方法は以下のとおりかと思いますが、最後の列まで一行づつとる場合はどうすればいいのでしょうか?教えて頂ければ幸いです。 Open "c:\data.txt" For Input As #1 Line Input #1, str Close #1

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

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

Sub test01() Open "c:\my documents\a13.csv" For Input As #1 i = 0 While Not EOF(1) Line Input #1, a i = i + 1 If i Mod 2 = 1 Then '処理 MsgBox i End If Wend Close #1 End Sub 1,3,5、・・番目を処理します。 2、4、6、・・・なら i Mod 2 = 0に変える。

その他の回答 (1)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 ループすればいいでしょう。 Dim strData() As String Dim i As Long Open "c:\data.txt" For Input As #1   Do Until EOF(1)     ReDim Preserve strData(i)     Line Input #1, strData(i)     i = i + 1   Loop Close #1

関連するQ&A

  • エクセルから外部テキストの置換をしたいです

    お時間があるかた、どうぞご教授下さい>< ================================ Dim FT As String Open "C:\1.txt" For Input As #1 Open "C:\2.txt" For Output As #2 Do While Not EOF(1) Line Input #1, FT FT = Replace(FT, ">", "\n") Print #2, FT Loop Close #1 Close #2 ================================ というマクロをエクセルで書いたのですが、テキスト上では>が\nに変換されているだけです。 テキストのほうで、ある文字(今回は>)を『改行』するにはどうしたらいいのでしょうか? エクセルのマクロから出来るようにしたいのです。 よろしくお願い致します。

  • テキストファイルを読み込み 偶数行の特定の文字を置換するには?

    お世話になります。 vb6なんですけどテキストファイルを読み込んで 偶数行のある文字を置換したいんですけど このサンプルをどういう風に改変して偶数行の文字列をある文字列に 置換するコードを書いてよいのかわかりません。 置換するのはreplace関数を使うと思うのですが。 教えて下さい。お願いします。 Dim n As Long, tmp As String n = FreeFile Open "D:\Test.txt" For Input As #n Line Input #n, tmp Close #n

  • vb6.0 sp5]読み込みが出来ない・・・

    マルチラインのtext1に20行くらいの文章を 入れて、保存します。tes.txt a = text1.text そのtes.txt自体を開くとキチンと文章が入っています。 しかしプログラムからそのファイルを開くと。 Open "tes.txt" For Input As #1 Line Input #1, a Close #1 Label1.Caption = a 最初の一行しか表示されません。T_T;

  • ブックをひらかずにテキストファイルを取り込む

    エクセルのブックを開かずにテキストファイルを取り込みたいのですが、対象のテキストファイルは タブで分かれています。 本を見て 下記のプロシージャを使用したいのですが、 テキストが取り込まれるブックに郵便番号と言うシートを作成してもうまく取り込めません。 テキストはタブで区切られたテキストで 7列のデータです。 下記のものを開こうとすると、7列でデータが入るのですが、タブでデータが区切られてこないのです。 データが続いて一つのセルに入ってしまい、 うまく設定できません。 何がいけないのでしょうか? 宜しくお願いします。 Sub ReadTxt() Dim myTxtFile As String Dim myBuf(7) As String Dim i As Integer, j As Integer Application.ScreenUpdating = False myTxtFile = ActiveWorkbook.Path & "\Fuji.txt" Worksheets("郵便番号").Activate Open myTxtFile For Input As #1 Do Until EOF(1) Input #1, myBuf(1), myBuf(2), myBuf(3), myBuf(4), _ myBuf(5), myBuf(6), myBuf(7) 'データをセルに展開する i = i + 1 For j = 1 To 7 Cells(i, j) = myBuf(j) Next j Loop Close #1 End Sub

  • VB6.0 でのテキストファイルの表示

    .net では、readstream でがばっととって、テキストボックス(読み取り専用)に表示しました。 これと同様のことをVB6.0でチャレンジしたのですが、テキストボックスに表示されるのは最初の一行だけでした。マルチラインのテキストボックス設置後 Private sub command1_click() Dim data as string Open "ファイルパス" for input as #256 Do while EOF(256) line input #256, data loop text1.text=data としたところ、ファイル内の最初の一行目に位置する「%」のみが表示されました。 readonlyもつかえないみたいなので、Listを使うのがよいのでしょうか?ご教示下さい

  • VBAでテキストをユーザーフォームに表示

    Office2007を使っています。 テキストデータからユーザーフォームにデータを表示させたいのですがうまくいきません。 インターネットを見てまねしたのですが添削をお願いします。 Private Sub UserForm_Initialize() Call Farst End Sub Sub test() Open "C:\Address\test.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf TextBox1.Text = buf TextBox2.Text = buf TextBox3.Text = buf Loop Close #1 End Sub

  • エクセルにてテキストファイル読み込みでエラー  

    いつもお世話になっております。 テキストファイル (test.txt)をエクセルマクロにてセルへの読み込みを したいのですが、なぜか エラーになります。 Cells(n, 1) = buf  でエラーのようです。 理由がわかりません。 教えてもらえないでしょうか 普通の文章なら読み込みできるのですが =  を使っているとエラーがでるようです。 test.txtの画像を添付します。 エクセルのマクロの内容は次の通り Sub テキストファイルをセルに転記() Dim buf As String, n As Long Open "C:\Users\a\Desktop\test.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf n = n + 1 Cells(n, 1) = buf Loop Close #1 End Sub

  • 複数テキストファイルをエクセルで開く

    度々の質問申し訳ございません。 複数のテキストファイルが入ったフォルダ内のすべてのテキストデータをエクセルの1シートで開きたいです。 他の方の同じような質問の御回答に以下のようなマクロが有りました。 Sub macro1() Dim myPath As String Dim myFile As String Dim n, c, s '初期化 myPath = ThisWorkbook.Path & "\" myFile = Dir(myPath & "*.txt") '受入準備 On Error Resume Next Worksheets.Add before:=Worksheets(1) ActiveSheet.Name = Format(Date, "yyyymmdd") On Error GoTo 0 'ファイルの巡回 Do Until myFile = "" n = n + 1 Cells(n, "A") = myFile 'データの読み出し Open myPath & myFile For Input As #1 c = 1 Do Until EOF(1) Line Input #1, s c = c + 1 Cells(n, c) = s Loop Close #1 myFile = Dir() Loop End Sub これを利用させていただいて、テキストファイルを開いたのですが、こちらのマクロですとテキストデータの1列目しか開く事が出来ません。(図参照) 1列目2列目共に開くには何処を変更すれば良いですか? マクロはまったく理解できないので、何卒宜しくお願い致します。 また、できればエクセルの横方向に開くのではなく、縦方向に開けるようにして頂けると非常にありがたいです。 何卒宜しくお願い致します。

  • テキストファイルから文字列の表示

    あるテキストファイルを読み込んで、OPEN_"*.*"(_は空白、空白の長さは固定されていない/*はワイルドカード)という形の文字列から *.* だけをテキストボックスに表示させたいのですが、どなたか教えてください。当方、初心者で全然わからずに困っています。 例.ABC.txtの中身 OPEN "BLGCOMON.DAT" AS #1 LEN=32 FIELD #1,1 AS BLG1$,8 AS BLG2$,1 AS BLG3$,20 AS BLGDUM$,2 AS BLGDEV$ OPEN  "ABCDEF.TXT" AS #1 LEN=32 GET #1,1 LSET BLG1$="1" LSET BLG2$="WSKMMKY " MID$(BLGDUM$,1,6)=MID$((STR$(WKRC)),2) MID$(BLGDUM$,7,6)=ISAMDAT$ LSET BLGDUM$ = BLGDUM$   OPEN QWER$ PUT #1,1 CLOSE #1 このテキストファイル(ABC.txt)の場合、1行目の「OPEN "BLGCOMON.DAT"」と3行目の「OPEN  "ABCDEF.TXT"」が質問の文字列に当てはまります。テキストボックスには「BLGCOMON.DAT ABCDEF.TXT」のみが表示されるようにしたいです。

  • 指定列を抜き出す

    V1 , V2 , V3 , V4 , V5 , V6 5.9, 3.9, 0.7, 3.9, 5.8, 5.1 4.1, 6.4, 3.8, 3.3, 5.8, 9.3 3.1, 2.3, 1.8, 2.7, 3.6, 5.6 6.8, 4.2, 2.1, 3.3, 4.9, 5.1 2.3, 0.3, -1.7, -2.1, -1.7, 1.10 8.0, 4.7, 3.7, 6.9, 6.2, 5.5 さらに続く 上記のようなテキストデータがファイルAに入っており これからV1,V3,V5のデータだけを抽出し、 ファイルBに格納するプログラムを作成中なのですが、 データの読み込みと書き込みの部分は作成したのですが、 どのようにすれば抽出できますでしょうか? ソフトはVB6です。よろしくお願いします 'ファイル読み込み Open "C:\A.txt" For Input As #1 FlLen = LOF(1) txt = Input(FlLen, #1) Close #1 'ファイル書き込み Open "C:\B.txt" For Output As #1 Print #1, txt Close #1

専門家に質問してみよう