Excel

テキストファイルをエクセルで開く・Workbooks.OpenText メソッド

2021-11-14

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

テキストファイルを開く

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

区切り文字:タブ

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

区切り文字:セミコロン

テキストファイルの例

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

保存先

テキストファイルの種類は次の5種類です。

ファイル名 区切り文字
天気1 タブ
天気2 セミコロン
天気3 コンマ
天気4 スペース
天気5 その他(アスタリスクの場合)

上記5種類のテキストファイルの画像です。

天気1:タブ
天気2:セミコロン
天気3:コンマ

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

天気4:スペース
天気5:その他(アスタリスク)

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

テキストファイルウィザード

一般機能で開く場合

テキストファイルの区切り文字「セミコロン」を開く場合の例です。

(1)メニュー[開く]より開きたいテキストファイルを選択します。

(2)データのファイル形式を選択してください:より「コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択し、[次へ]をクリックします。

テキストファイルウィザード1/3

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

テキストファイルウィザード2/3

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

テキストファイルウィザード3/3
区切り文字:セミコロン

マクロでテキストファイルを開く場合

タブ区切りのテキストファイルは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列は保存後に「済」と入力します。

sheet1
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

-Excel
-

© 2021 オフィスのQ&A