すなわち、最初は1~100件、次は101~200件、・・・と毎回異なるデータ(抄録)を抽出して分類を行ってみてはどうだろう。
その場合、範囲を指定してデータを抜き取るプログラムが必要となる。それを以下に示す。
Sub run() データ抽出 101, 100 End Sub Sub データ抽出(オフセット As Integer, 件数 As Integer) Dim ws As Worksheet Dim 疾患名 As String Dim i As Integer Dim j As Integer Dim PATH As String Dim fno1 As Integer Dim fno2 As Integer PATH = ActiveWorkbook.PATH fno1 = FreeFile Open PATH & "\コーパス\抄録" & 件数 & ".txt" For Output As #fno1 fno2 = FreeFile Open PATH & "\コーパス\疾患" & 件数 & ".csv" For Output As #fno2 Set ws = Worksheets("疾患") Print #fno2, "疾患" i = 2 Do While ws.Cells(i, 1).Value <> "" j = 0 疾患名 = ws.Cells(i, 1).Value Do While 疾患名 = ws.Cells(i, 1).Value j = j + 1 If j >= オフセット And j < オフセット + 件数 Then Print #fno2, ws.Cells(i, 1).Value Print #fno1, ws.Cells(i, 23).Value End If i = i + 1 Loop Loop Close #fno1 Close #fno2 End Sub
プログラムの使い方は次の通り。
データ抽出 オフセット(先頭のデータの位置), 抽出件数なお、このプログラムを含むExcelファイルがあるフォルダ内に「コーパス」という名前のフォルダをあらかじめ作っておく。抄録、疾患の抽出結果はそのフォルダ内に「抄録XXX.txt」、「疾患XXX.csv」という名前で出力される。 ここで、XXXは抽出件数である。