VBA テキストファイルをエクセルにコピー(動画あり)

ExcelVBA_テキストファイルをエクセルへコピペ_アイキャッチ ExcelVBA

エクセルマクロで、テキストファイルをエクセルにコピーするVBAコードをご紹介します。

textファイルの中身を全てコピーして、エクセルに貼り付けしたような状態になります。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

テキストファイルをエクセルにコピー(パターン1)

以下のマクロを実行すると、メモ帳のデータを読み込んでExcelに貼り付けます。


Sub テキストファイルを一括読み込みしてエクセルへコピー()

Dim WordListAddress As String
Dim TxtFileList As String
Dim InputCnt As Long
Dim TxtNum  As Long
Dim InputWord() As String
Dim TxtFile As String
Dim Buf As Variant
Dim fso As Object
Dim i As Long

    Set fso = CreateObject("Scripting.FileSystemObject")

    'テキストファイルのパスを指定
    WordListAddress = "C:\Users\admin\Desktop\テスト\チェックリスト.txt"

    'テキストファイルのファイル名を拡張子つきで取得
    TxtFileList = fso.GetFileName(WordListAddress)
    TxtNum = FreeFile

    Open WordListAddress For Input As TxtNum
        While Not EOF(1)
            Line Input #TxtNum, TxtFileList

            '単語をタブ区切りで抽出
            Buf = Split(TxtFileList, vbTab)

            '配列の要素数を変更
            ReDim Preserve InputWord(InputCnt)

            '配列にテキストファイルの値を格納
            InputWord(InputCnt) = Buf(0)

            InputCnt = InputCnt + 1
        Wend
    Close TxtNum

    'エクセルシートへ書き込み
    For i = 0 To UBound(InputWord)
        Sheets("Sheet1").Cells(i + 1, 1) = InputWord(i)
    Next i

End Sub

 

マクロ実行後

テキストファイルの内容をエクセルシートに書き込みします。


 
 

テキストファイルをエクセルにコピー(パターン2)

以下のマクロを実行すると、テキストファイルを読み込んでワークシートに貼り付けます。


Sub メモ帳をエクセルへコピー()

Dim WordListAddress As String
Dim TxtFileList As String
Dim InputCnt As Long
Dim TxtNum  As Long
Dim InputWord(100, 1) As Variant
Dim TxtFile As String
Dim Buf As Variant
Dim fso As Object
Dim i As Long
Dim j As Long

    Set fso = CreateObject("Scripting.FileSystemObject")

    'テキストファイルのパスを指定
    WordListAddress = "C:\Users\admin\Desktop\テスト\チェックリスト.txt"

    'テキストファイルのファイル名を拡張子つきで取得
    TxtFileList = fso.GetFileName(WordListAddress)
    TxtNum = FreeFile

    Open WordListAddress For Input As TxtNum
        While Not EOF(1)
            Line Input #TxtNum, TxtFileList

            '単語をカンマ区切り「,」で抽出
            Buf = Split(TxtFileList, ",")

            For i = 0 To UBound(Buf)
                InputWord(InputCnt, i) = Buf(i)
            Next i

            InputCnt = InputCnt + 1
        Wend
    Close TxtNum

    'エクセルシートへ書き込み
    For i = 0 To UBound(InputWord)
        For j = 0 To 1
            Sheets("Sheet1").Cells(i + 1, j + 1) = InputWord(i, j)
        Next j
    Next i

End Sub

 

マクロ実行後

textファイルを一括で読み込み、エクセルへ出力します。


 
 

テキストファイルをエクセルにコピー(パターン3)

以下のマクロを実行すると、メモ帳を全て読み込んでエクセルへコピーします。


Sub テキストファイルを読込しエクセルへコピペ()

Dim WordListAddress As String
Dim TxtFileList As String
Dim InputCnt As Long
Dim TxtNum  As Long
Dim InputWord(100, 10) As Variant
Dim TxtFile As String
Dim Buf As Variant
Dim fso As Object
Dim i As Long
Dim j As Long

    Set fso = CreateObject("Scripting.FileSystemObject")

    'テキストファイルのパスを指定
    WordListAddress = "C:\Users\admin\Desktop\テスト\チェックリスト.txt"

    'テキストファイルのファイル名を拡張子つきで取得
    TxtFileList = fso.GetFileName(WordListAddress)
    TxtNum = FreeFile

    Open WordListAddress For Input As TxtNum
        While Not EOF(1)
            Line Input #TxtNum, TxtFileList

            '単語をカンマ区切り「,」で抽出
            Buf = Split(TxtFileList, ",")

            'txtファイルをループ(縦)
            If InputCnt < 100 Then
                For i = 0 To UBound(Buf)
                    'txtファイルをループ(横)
                    If i < 11 Then
                        InputWord(InputCnt, i) = Buf(i)
                    End If
                Next i
                InputCnt = InputCnt + 1
            End If
        Wend
    Close TxtNum

    'エクセルシートへ書き込み
    For i = 0 To UBound(InputWord)
        For j = 0 To 10
            Sheets("Sheet1").Cells(i + 1, j + 1) = InputWord(i, j)
        Next j
    Next i

End Sub

 

マクロ実行後

テキストファイルをコピーして、エクセルシートへ書き込みします。


 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】テキストファイルを自動処理する使用例を見る
 

【エクセルマクロ】テキストファイルを自動操作する:超便利8選
...

 

「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載