EXCEL - VBA テキストファイルの読込
テキストファイルをEXCELに読込んで見やすく整形したかった。
テキストファイルを1行づつ読込み、A1, A2, A3…とういうようにA列に設定する
改行コードはCRLF
Option Explicit
Sub funcTest()
Dim buf As String
Dim wkRow As Integer
Open "d:\\data.txt" For Input As #1
wkRow = 1
Do Until EOF(1)
Line Input #1, buf
Cells(wkRow, 1) = buf
wkRow = wkRow + 1
Loop
Close #1
End Sub
テキストファイルを1行づつ読込み、A1, B1, C1…とういうように1行に設定する
改行コードはCRLF
Option Explicit
Sub funcTest()
Dim buf As String
Dim wkColumn As Integer
Open "d:\\data.txt" For Input As #1
wkColumn = 1
Do Until EOF(1)
Line Input #1, buf
Cells(1, wkColumn) = buf
wkColumn = wkColumn + 1
Loop
Close #1
End Sub
A列にファイル名、B列以降にファイルの内容を表示したい
改行コードはCRLF
Option Explicit
Sub funcTest()
Dim buf As String
Dim wkColumn As Integer
Open Cells(1, 1).Value For Input As #1
wkColumn = 2 ' B列から貼り付ける
Do Until EOF(1)
Line Input #1, buf
Cells(1, wkColumn) = buf
wkColumn = wkColumn + 1
Loop
Close #1
End Sub
A列にファイル名、B列に何行目から読込むか、C列以降にファイルの内容を表示したい
改行コードはCRLF
// EXCEL マクロ実行前
A B
data.txt 1
// data.txt
aaa
bbb
ccc
// EXCEL マクロ実行後
A B C D E
data.txt 1 aaa bbb ccc
Option Explicit
' ファイル(改行コードCRLF)読み込んで内容を表示
' A列にファイル名(フルパス)
' B列に何行目から読込むかの行番号
' C列にファイルから読込んだ値、行を1列づつ表示する
' フォーマット
' ファイル名 何行目から読込むか 読込んだX行目 読込んだX+1行目 読込んだX+2行目...
Sub funcTest()
Dim buf As String
Dim wkColumn As Integer
Dim wkFilename As String
Dim wkStartLineNo As Integer
Dim curLineNo As Integer
wkFilename = Cells(1, 1).Value ' A列
wkStartLineNo = Cells(1, 2).Value ' B列
curLineNo = 0 ' ファイルの現在の読込み位置、XX行目の意味
Open wkFilename For Input As #1
wkColumn = 3 ' C列から貼り付ける
Do Until EOF(1)
curLineNo = curLineNo + 1
Line Input #1, buf
If (curLineNo >= wkStartLineNo) Then
Cells(1, wkColumn) = buf
wkColumn = wkColumn + 1
End If
Loop
Close #1
End Sub
A列にファイル名、B列に何行目から読込むか、C列以降にファイルの内容を表示したい
改行コードはLF
Option Explicit
' ファイル(改行コードCRLF)読み込んで内容を表示
' A列にファイル名(フルパス)
' B列に何行目から読込むかの行番号
' C列にファイルから読込んだ値、行を1列づつ表示する
' フォーマット
' ファイル名 何行目から読込むか 読込んだX行目 読込んだX+1行目 読込んだX+2行目...
Sub funcTest()
Dim buf As String
Dim wkColumn As Integer
Dim wkFilename As String
Dim wkStartLineNo As Integer
Dim curLineNo As Integer
Dim tmp As Variant
Dim tmp2 As Variant
Dim i As Integer
wkFilename = Cells(1, 1).Value ' A列
wkStartLineNo = Cells(1, 2).Value ' B列
wkColumn = 3 ' C列から貼り付ける
curLineNo = 0 ' ファイルの現在の読込み位置、XX行目の意味
Open wkFilename For Input As #1
Line Input #1, buf
Close #1
tmp = Split(buf, vbLf)
For i = 0 To UBound(tmp) - 1
curLineNo = curLineNo + 1
If (curLineNo >= wkStartLineNo) Then ' 指定行まで読み飛ばす処理
tmp2 = Split(tmp(i), ",")
Cells(1, wkColumn).Resize(1, UBound(tmp2) + 1).Value = tmp2
wkColumn = wkColumn + 1
End If
Next i
End Sub
A列にファイル名、B列に何行目から読込むか、C列以降にファイルの内容を表示したい
改行コードはLF
1行目から3行目までを処理する
Option Explicit
' ファイル(改行コードCRLF)読み込んで内容を表示
' A列にファイル名(フルパス)
' B列に何行目から読込むかの行番号
' C列にファイルから読込んだ値、行を1列づつ表示する
' フォーマット
' ファイル名 何行目から読込むか 読込んだX行目 読込んだX+1行目 読込んだX+2行目...
Sub funcTest()
Dim buf As String
Dim wkColumn As Integer
Dim wkFilename As String
Dim wkStartLineNo As Integer
Dim curLineNo As Integer
Dim tmp As Variant
Dim tmp2 As Variant
Dim i As Integer
Dim sheetLine As Integer
For sheetLine = 1 To 3 ' 1行目から3行目まで対象とする
wkFilename = Cells(sheetLine, 1).Value ' A列
wkStartLineNo = Cells(sheetLine, 2).Value ' B列
wkColumn = 3 ' C列から貼り付ける
curLineNo = 0 ' ファイルの現在の読込み位置、XX行目の意味
Open wkFilename For Input As #1
Line Input #1, buf
Close #1
tmp = Split(buf, vbLf)
For i = 0 To UBound(tmp) - 1
curLineNo = curLineNo + 1
If (curLineNo >= wkStartLineNo) Then ' 指定行まで読み飛ばす処理
tmp2 = Split(tmp(i), ",")
Cells(sheetLine, wkColumn).Resize(1, UBound(tmp2) + 1).Value = tmp2
wkColumn = wkColumn + 1
End If
Next i
Next sheetLine
End Sub
A列にファイル名、B列に何行目から読込むか、C列以降にファイルの内容を表示したい
改行コードはLF
「For sheetLine = 1 To 3 ' 1行目から3行目まで対象とする」を
「For sheetLine = 1 To Cells(Rows.Count, 1).End(xlUp).row」に書き換える
Option Explicit
' ファイル(改行コードCRLF)読み込んで内容を表示
' A列にファイル名(フルパス)
' B列に何行目から読込むかの行番号
' C列にファイルから読込んだ値、行を1列づつ表示する
' フォーマット
' ファイル名 何行目から読込むか 読込んだX行目 読込んだX+1行目 読込んだX+2行目...
Sub funcTest()
Dim buf As String
Dim wkColumn As Integer
Dim wkFilename As String
Dim wkStartLineNo As Integer
Dim curLineNo As Integer
Dim tmp As Variant
Dim tmp2 As Variant
Dim i As Integer
Dim sheetLine As Integer
' For sheetLine = 1 To 3 ' 1行目から3行目まで対象とする
For sheetLine = 1 To Cells(Rows.Count, 1).End(xlUp).row ' A列に値があるものを取得する
wkFilename = Cells(sheetLine, 1).Value ' A列
wkStartLineNo = Cells(sheetLine, 2).Value ' B列
wkColumn = 3 ' C列から貼り付ける
curLineNo = 0 ' ファイルの現在の読込み位置、XX行目の意味
Open wkFilename For Input As #1
Line Input #1, buf
Close #1
tmp = Split(buf, vbLf)
For i = 0 To UBound(tmp) - 1
curLineNo = curLineNo + 1
If (curLineNo >= wkStartLineNo) Then ' 指定行まで読み飛ばす処理
tmp2 = Split(tmp(i), ",")
Cells(sheetLine, wkColumn).Resize(1, UBound(tmp2) + 1).Value = tmp2
wkColumn = wkColumn + 1
End If
Next i
Next sheetLine
End Sub
この記事が気に入ったらサポートをしてみませんか?