【先着1,000名様!】1,000円分をプレゼント!

マクロの初心者です。

エクセルで開いているシートに、指定フォルダーに保管しているtxtデータを呼び出してエクセルデータとして取り込めるマクロをご教授願います。

現在、下記マクロで取込むことは可能になったのですが、カンマで区切りで取込となってしまいます。カンマ区切りを1つ1つ(A1,A2,B1,B2,,,,,,)に分けたいのですが、、、、、宜しくお願いいたします。

Sub テキスト読み込み()

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

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

Dim r As Long
r = 1 '1行目から書き出す

Do Until EOF(1)

Dim buf As String
Line Input #1, buf

Dim aryLine As Variant '文字列格納用配列変数
aryLine = Split(buf, vbTab) '読み込んだ行をタブ区切りで配列変数に格納

Dim i As Long
For i = LBound(aryLine) To UBound(aryLine)
'インデックスが0から始まるので列番号に合わせるため+1
Cells(r, i + 1) = aryLine(i)
Next

r = r + 1

Loop

Close #1

MsgBox "終了しました。"

End Sub

A 回答 (3件)

aryLine = Split(buf, vbTab) '読み込んだ行をタブ区切りで配列変数に格納



これは、テキストファイルがタブ区切りの場合のケースです。
テキストファイルがカンマ区切りなら、以下のようにしてください。
aryLine = Split(buf, ",")
    • good
    • 1
この回答へのお礼

ご教授ありがとうございました。
問題なく対応できました。

感謝!!!!

お礼日時:2019/09/03 20:03

こんにちは



カンマ区切りのテキストを普通に読み込むだけなら、エクセルの基本機能で読み込めます。

マクロから行う場合であっても、そちらを利用する方が記述がはるかに簡単になるでしょう。(基本的に1命令なので)
また、区切り文字はカンマだけでなく、tabやスペース等にも対応しています。

https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 1
この回答へのお礼

ご教授ありがとうございました。
マクロを書き込む方法でも色々ありテンパっていますが、
皆さんの回答、勉強になります。感謝!!!

お礼日時:2019/09/03 20:11

まずは、新しいブックを作って、ファイル>開く から手動で開いてみてください。


ファイルの種類とか区切り位置とか指定して開く事になります。
所望の形に開ける設定がわかったら、オートスクリプト(開発>マクロの記録)にして、
手動で開いて、開発>記録終了。
新しいマクロにスクリプトが記録されるので、その部分だけ使えば良いです。
    • good
    • 1
この回答へのお礼

有難うございました。新しいマクロスクリプトで記録させる、、、、この方法は新たな方法として活用させていただきます。

助かります!!

お礼日時:2019/09/03 20:07

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング