ワードファイルの全ページの全行に対する行単位の処理があり、現在、
st.Item(i) のような形で処理をしています。この処理を速めたいです。
Excelの場合、範囲を配列に一括で入れて速く処理するという方法がありますが、
ワードでも同じような方法(配列に入れる)は可能でしょうか。
よろしくお願いします。
(補足)
御投稿ありがとうございます。
全文から、単語myArray(j,0) or myArray(j,1) が含まれる文章の出現回数をmyArrayCnt(j)に代入するという処理です。単語は複数種類あり(j)、中略を挟んで二度同種の処理があります。
VBA
1Sub ReadDocument() 2 Dim st As Sentences 3 Dim i As Long 4 Set st = ActiveDocument.Sentences 5 For i = 1 To st.Count 6 For j = 1 To 10 7 If instr(st.Item(i), myArray(j, 0))>0 or instr(st.Item(i), myArray(j, 1))>0 8 Then myArrayCnt(j)=myArrayCnt(j)+1 9 Next 10 Next 11 '中略 12 For i = 1 To st.Count 13 For j = 1 To 8 14 If instr(st.Item(i), myArray2(j,0))>0 or instr(st.Item(i), myArray2(j,1))>0 Then myArrayCnt2(j)=myArrayCnt2(j)+1 15 Next 16 Next 17End Sub
エクセルは表計算ソフト、セル範囲のValueは2次元配列になるので、それを利用して高速化できます。
ワードは表計算ソフトではないので、そのような機能はないので、できません。
ワードの文書データは2次元配列とはまったく別物ですので。
具体的な処理を提示されたら、別の高速化の手段はあるかもしれません。
回答1件