Excel タグがついているので、Excelのマクロでの方法で回答します。
Sub WordCount()
Dim strFileName As String
Dim Dic As Object
Dim intFree As Integer
Dim strWord As String
Dim i As Long, j As Long
strFileName = "C:\test\aaa.txt"
Set Dic = CreateObject("Scripting.Dictionary")
intFree = FreeFile '空番号を取得
Open strFileName For Input As #intFree 'テキストファィルをオープン
Do Until EOF(intFree)
Line Input #intFree, strWord '1行読み込み
If Dic.exists(strWord) Then
Dic(strWord) = Dic(strWord) + 1
Else
Dic.Add strWord, 1
End If
Loop
Close #intFree
Range("A1").Resize(Dic.Count) = Application.WorksheetFunction.Transpose(Dic.keys)
Range("B1").Resize(Dic.Count) = Application.WorksheetFunction.Transpose(Dic.items)
End Sub
結果はアクティブシートに出力します。
テキストファイルを1行ずつ読み込んでますので、サイズの大きいファイルだと時間がかかるかもしれませんので、小さいファイルでテストしてから実行してみてください。
上記で時間がかかりすぎる場合は、ADO を使用してSQLで読み込んで処理する方法も試してみてください。
だだし、この方法はVBEの参照設定(ツール>参照設定)で「Microsoft ActiveX Data ObjectX.X Library」にチェックを入れる必要があります。
Sub WordCountADO()
Dim objCn As New ADODB.Connection
Dim objRS As ADODB.Recordset
Dim GYO As Long, COL As Long
Dim strSQL As String
With objCn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Properties("Extended Properties") = "Text;HDR=NO"
.ConnectionString = "C:\test\"
.Open
End With
strSQL = "SELECT F1, Count(F1) FROM aaa.txt GROUP BY F1"
Set objRS = New ADODB.Recordset
Set objRS = objCn.Execute(strSQL)
Range("A1").CopyFromRecordset objRS
objCn.Close
Set objRS = Nothing
Set objCn = Nothing
End Sub