エクセルマクロで、テキストファイルを読み込んで、配列に追加するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
テキストファイルを1次元配列に格納
以下のマクロを実行すると、指定したテキストファイルを読み込んで配列に追加します。
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
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, ",")
'配列の要素数を変更
ReDim Preserve InputWord(InputCnt)
'配列にテキストファイルの値を入れる
InputWord(InputCnt) = Buf(0)
InputCnt = InputCnt + 1
Wend
Close TxtNum
End Sub
マクロ実行後
変数 [WordListAddress] にテキストファイルのファイルパスを入力して、
データを読み込みします。
1次元配列に、テキストファイルのデータを格納します。
テキストファイルの入力内容
カンマ区切りで入力します。
1行に1語入力し、各行の最後に「,(カンマ)」を入力します。
VBAコードの解説
[Buf = Split(TxtFileList, “,”)] は、Split関数を使ってテキストファイルの値を、
「,(カンマ)」で区切って取得します。
Buf(0)の値を配列に入れます。
テキストファイルを2次元配列に格納(パターン1)
以下のマクロを実行すると、選択したテキストファイルを読み込んで配列に追加します。
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 i As Long
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
'テキストファイル選択し、パス取得
With Application.FileDialog(msoFileDialogOpen)
.Show
If .SelectedItems.Count = 0 Then
'ファイルを選択していない場合
Exit Sub
Else
'選択したテキストファイルのフルパスを変数に格納
WordListAddress = .SelectedItems.Item(1)
End If
End With
'テキストファイルのファイル名を拡張子つきで指定
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
End Sub
マクロ実行後
ファイルを開くダイヤログを表示して、
データを読み込みたいテキストファイルを選択します。
2次元配列に、テキストファイルのデータを格納しました。
テキストファイルの内容
1行に2語入力し、単語の間に「,(カンマ)」を入力します。
テキストファイルを2次元配列に格納(パターン2)
以下のマクロを実行すると、指定したテキストファイルを読み込んで配列に追加します。
Sub 指定したtxtファイルを読込し、二次元配列へ追加()
Dim WordListAddress As String
Dim TxtFileList As String
Dim InputCnt As Long
Dim TxtNum As Long
Dim InputWord() As Variant
Dim TxtFile As String
Dim Buf As Variant
Dim i As Long
Dim fso As Object
'配列の要素数を設定
ReDim Preserve InputWord(100, 10)
Set fso = CreateObject("Scripting.FileSystemObject")
'テキストファイルのパスを指定
WordListAddress = "C:\Users\admin\Desktop\テスト\チェックリスト3.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
End Sub
マクロ実行後
2次元配列に、テキストファイルのデータを格納します。
[If InputCnt < 100 Then] を入れることで、
テキストファイルのデータを何行目まで読み込むか指定しています。
テキストファイルの内容
カンマ区切りで単語を入力します。
1行に11語を入力すると、配列に10要素まで格納することができます。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】テキストファイルを自動処理する使用例を見る
「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!