dポイントプレゼントキャンペーン実施中!

タブ区切りのテキストファイルをExcelに取り込むマクロを作成しています。
取り込み処理まではできましたが、タブ区切りをセルごとに分けて取り込むことができません。
添付資料の通り、1行の文字が連結した状態で取り込まれます。

「split関数でタブ区切りをして取り込む」までは検討がついているのですが、実際のコードが組めません。splitでなくても、どなたか解決策をご存知の方いらっしゃいましたら教えていただけますでしょうか。


■条件
・テキストファイルの列数、行数はファイルによって変動する。
・ファイルパス・ファイル名を指定せず、ダイアログでユーザに指定させる。

■現在作成中のコード
Sub a()
Dim buf As String, n As Long
n = 1

Dim txtName As String
txtName = Application.GetOpenFilename("テキストファイル,*.txt")

If txtName <> "False" Then
 Open txtName For Input As #1
End If

Do Until EOF(1)
Line Input #1, buf
Cells(n, 1) = buf
n = n + 1
Loop
Close #1

End Sub

「【VBA】テキストファイルの内容をExc」の質問画像

A 回答 (2件)

どうぞ





Sub a()
Dim buf As String, n As Long
n = 1

Dim txtName As String
txtName = Application.GetOpenFilename("テキストファイル,*.txt")

If txtName <> "False" Then
Open txtName For Input As #1
End If

Do Until EOF(1)
Line Input #1, buf

Dim aryLine
aryLine = Split(buf, vbTab)
Dim nCol As Long
For nCol = LBound(aryLine) To UBound(aryLine)
Cells(n, nCol + 1) = aryLine(nCol)
Next



n = n + 1
Loop
Close #1

End Sub
    • good
    • 0

splitなしとの要望だが、ごめんなさい、splitの方がやりやすかったです。

    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。想定通りの動作が確認できました。
splitであっても、splitでなくても、どの方法でもよいので解決方法が知りたかったので、とても助かりました。

お礼日時:2017/11/13 21:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!