テキストファイルをエクセルファイルへドラッグ&ドロップで開いた場合、数列で表示してほしいデータが1列に表示される場合があります。

列ごとにデータが表示される例。これは希望通りの結果です。

データが1列に表示される例。これはやりたいことと違う。

目次
テキストファイルの例
テキストファイルの保存先:F:¥sample

テキストファイルの種類は次の5種類です。
スクロールできます
| ファイル名 | 区切り文字 |
|---|---|
| 天気1 | タブ |
| 天気2 | セミコロン |
| 天気3 | コンマ |
| 天気4 | スペース |
| 天気5 | その他(アスタリスクの場合) |
上記5種類のテキストファイルの画像です。



スペースは1文字分です。


テキストファイルをエクセルの一般機能で開く場合の区切り文字の種類の画面です。

一般機能で開く場合
テキストファイルの区切り文字「セミコロン」を開く場合の例です。
(1)メニュー[開く]より開きたいテキストファイルを選択します。
(2)データのファイル形式を選択してください:より「コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択し、[次へ]をクリックします。

(3)区切り文字の「セミコロン」にチェックを入れ、、[次へ]をクリックします。

(4)[完了]をクリックします。


マクロでテキストファイルを開く場合
タブ区切りのテキストファイルはWorkbooks.OpenText メソッドで読込めます。
Workbooks.OpenText メソッド
セミコロン区切りのテキストファイルを開く場合の例です。
Sub sample2()
Dim fName As String: fName = "F:\sample\天気2.txt"
Workbooks.OpenText Filename:=fName, DataType:=xlDelimited, Semicolon:=True
End Sub
区切り文字でテキストファイルを開く場合に必要な引数
スクロールできます
| パラメータ | 内容 |
|---|---|
| FileName | 読み込みたいテキストファイルの名前 |
| DataType | xlDelimitedを設定します。 |
- FileName:設定必須です。上記の例では、「F:\sample\天気2.txt」の部分です。
- DataType:「xlDelimited」は区切り文字によって開かれます。省略すると「xlFixedWidth」で、固定幅の列に配置されます。
区切り文字の引数です。省略可能。
スクロールできます
| パラメーター | 使用する場合の設定 |
|---|---|
| タブ | Tab:=True |
| セミコロン | Semicolon:=True |
| コンマ | Comma:=True |
| スペース | Space:=True |
| その他(アスタリスク) | OtherChar:=True |
その他の場合は、
Other:=True, Otherchar:="*"
と設定します。
区切り文字が異なるテキストファイルを連続で開く
エクセルブックのシート「sheet1」のA列には、開きたいテキストファイル名が入力されてます。
テキストファイルを開いた後は、テキストファイルが保存してある場所へエクセルブックとして保存します。
B列は保存後に「済」と入力します。

Sub sample3()
Dim ws As Worksheet
Set ws = ActiveWorkbook.Worksheets("Sheet1")
Dim fPath As String: fPath = "F:\sample\"
Dim fName As String
Dim i As Long
For i = 2 To 6
fName = ws.Cells(i, 1)
Workbooks.OpenText Filename:=fPath & fName & ".txt" _
, DataType:=xlDelimited _
, Tab:=True _
, Semicolon:=True _
, Comma:=True _
, Space:=True _
, Other:=True _
, Otherchar:="*"
With ActiveWorkbook
.SaveAs Filename:=fPath & fName & ".xlsx", FileFormat:=xlOpenXMLWorkbook
.Close
End With
ws.Cells(i, 2) = "済"
Next i
End Sub
