私は約50のセルの列を持っています。各セルには、3〜8文のいずれかのテキストブロックが含まれています。範囲内のセル内の単語の頻度
Idは、使用されている単語のリストを入力し、その範囲全体(A1:A50)の頻度を取得するのが好きです。
Iveは他の投稿で見つかった他のコードを操作しようとしましたが、複数の単語ではなく1つの単語を含むセルに合わせて調整されているようです。
これは私が使用しようとしていたコードです。
Sub Ftable()
Dim BigString As String, I As Long, J As Long, K As Long
Dim Selection As Range
Set Selection = ThisWorkbook.Sheets("Sheet1").Columns("A")
BigString = ""
For Each r In Selection
BigString = BigString & " " & r.Value
Next r
BigString = Trim(BigString)
ary = Split(BigString, " ")
Dim cl As Collection
Set cl = New Collection
For Each a In ary
On Error Resume Next
cl.Add a, CStr(a)
Next a
For I = 1 To cl.Count
v = cl(I)
ThisWorkbook.Sheets("Sheet2").Cells(I, "B").Value = v
J = 0
For Each a In ary
If a = v Then J = J + 1
Next a
ThisWorkbook.Sheets("Sheet2").Cells(I, "C") = J
Next I
End Sub
このコードを試してみると、どういうことが起こりますか?これは理論的にはあなたの状況ではうまくいくかもしれませんが、BigStringが大きくなりすぎてVBAが正しく処理できないようです(実際は長い文字列が好きではありません)。このような場合は、コードを大幅に書き直す必要があります(少なくとも選択したセルを一度にループする必要はありません)。 – Mikegrann