|    | 
     お世話になります。 
 
下記のマクロを作ったのですが、コメントアウトしたところでエラーが発生してしまいます。 
しかもiに関してのForループが回った後です。なぜかわかりますか?? 
 
 
Sub ネガポジ() 
 
 Dim i As Integer ' 変数 
 Dim score As Double 
 Dim number As Double 
 Dim j As Integer 
 Dim m As Integer 
 Dim s As Integer 
 score = 0 
 number = 0 
  
  
i = 2 
 
 
 Rows(2).Insert ' 行を挿入 
 Rows(3).Insert 
 Do While Cells(1, i) <> "" 
  Cells(2, i) = StrConv(Cells(1, i), vbKatakana) '単語をカタカナに変換 
  Cells(3, i) = StrConv(Cells(1, i), vbHiragana) ' 単語を平仮名に変換 
  i = i + 1 
   
  Loop 
i = 3 
Rows(6).Insert 
Rows(7).Insert 
Rows(8).Insert 
Cells(6, 2).Value = "=VLOOKUP(B1,データベース!$A$1:$D$60000,4,False)" ' スコアの表示 
Cells(7, 2).Value = "=VLOOKUP(B2,データベース!$B$1:$D$60000,3,False)" 
Cells(8, 2).Value = "=VLOOKUP(B3,データベース!$B$1:$D$60000,3,False)" 
Do While Cells(1, i) <> "" 
 Cells(6, i - 1).Copy Cells(6, i) 
  Cells(7, i - 1).Copy Cells(7, i) 
  Cells(8, i - 1).Copy Cells(8, i) 
  i = i + 1 
 Loop 
  m = Cells(Rows.Count, "A").End(xlUp).Row 
  s = Cells(9, Columns.Count).End(xlToLeft).Column 
For j = 9 To m 
score = 0 
number = 0 
 For i = 2 To s 
 If Cells(j, i).Value > 0 Then 
  If Application.WorksheetFunction.IsError(Cells(6, i)) = False Then 
    score = score + Cells(6, i).Value * Cells(j, i).Value 
    number = number + Cells(j, i).Value 
  ElseIf Application.WorksheetFunction.IsError(Cells(7, i)) = False Then 
       score = score + Cells(7, i).Value * Cells(j, i).Value 
       number = number + Cells(j, i).Value 
  ElseIf Application.WorksheetFunction.IsError(Cells(8, i)) = False Then 
       score = score + Cells(8, i).Value * Cells(j, i).Value 
       number = number + Cells(j, i).Value 
    Else 
    End If 
    End If 
    Next i  'なぜかForループが終わったときにエラーを吐く。 
    If number = 0 Then 
      Cells(j, i).Value = 0 
    Else 
    MsgBox score / number 
    Cells(j, i).Value = score / number 
    End If 
    Next j 
     
  Cells(9, i - 1).Copy 
  Cells(9, i).PasteSpecial 
  Cells(9, i - 1).Value = "" 
  Cells(8, i).Value = "ネガポジ分析結果" 
 
 
End Sub 
 | 
     
    
   |