Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


800 / 13645 ツリー ←次へ | 前へ→

【78213】実行時エラー13 型が一致しません 助けて 16/5/27(金) 11:22 質問[未読]
【78214】Re:実行時エラー13 型が一致しません β 16/5/27(金) 11:43 発言[未読]
【78215】Re:実行時エラー13 型が一致しません 助けて 16/5/27(金) 11:48 発言[未読]
【78216】Re:実行時エラー13 型が一致しません 助けて 16/5/27(金) 12:03 発言[未読]
【78217】Re:実行時エラー13 型が一致しません 独覚 16/5/27(金) 14:28 発言[未読]
【78218】Re:実行時エラー13 型が一致しません 助けて 16/5/27(金) 17:47 発言[未読]
【78242】Re:実行時エラー13 型が一致しません 独覚 16/6/3(金) 15:12 発言[未読]

【78213】実行時エラー13 型が一致しません
質問  助けて  - 16/5/27(金) 11:22 -

引用なし
パスワード
   お世話になります。

下記のマクロを作ったのですが、コメントアウトしたところでエラーが発生してしまいます。
しかも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

【78214】Re:実行時エラー13 型が一致しません
発言  β  - 16/5/27(金) 11:43 -

引用なし
パスワード
   ▼助けて さん:

コードは詳細に読んでいないのですが、エラーが発生するコードは

Next i

ですか?

それとも他のコードですか?
他のコードだとすると、どれはどのコードですか?

で、その時のエラー番号とエラーメッセージの内容を
正確にアップしてください。

ちなみに、要件はわかりませんけど、ループを抜けた後の処理、

    If number = 0 Then
      Cells(j, i).Value = 0
    Else
      MsgBox score / number
      Cells(j, i).Value = score / number
    End If

ここで相手にしている i や j は、処理領域の最後の行の次の行、
処理領域の最後の列の次の列ですけど、それはいいのですね?

【78215】Re:実行時エラー13 型が一致しません
発言  助けて  - 16/5/27(金) 11:48 -

引用なし
パスワード
   ありがとうございます。

Next iでループは回ることは確認しております。
しかし、iに関するループが回った後、エラーが表示されます。


処理領域の次の行のセルに書き込むのは合ってます。

【78216】Re:実行時エラー13 型が一致しません
発言  助けて  - 16/5/27(金) 12:03 -

引用なし
パスワード
   実行時エラー '13':
型が一致しません

と出ます。

【78217】Re:実行時エラー13 型が一致しません
発言  独覚  - 16/5/27(金) 14:28 -

引用なし
パスワード
   ▼助けて さん:

回答ではないけれども。

VBエディタの「ツール」-「オプション」で「全般」タブの「エラートラップ」を
「エラー発生時に中断」にした場合もエラー発生個所は同じでしょうか?


なお、確認後はエラートラップのチェック箇所をもとに戻しておいてください。

【78218】Re:実行時エラー13 型が一致しません
発言  助けて  - 16/5/27(金) 17:47 -

引用なし
パスワード
   すいません。。。
エラーの発生源がわかり自己解決しました。。。(エラー発生源が予想と違かった)

しかし別の問題が発生しました!
vlookup関数を冒頭のセルにコピーして処理領域のある行のセルすべてに貼り付けてるんですけども、
相対参照されないで、出てくるのですが
セルの中身をいざみると相対参照されていて、1回セルのデータを選択してエンターを押すと相対参照になります。
どういったことが原因なのでしょうか。

【78242】Re:実行時エラー13 型が一致しません
発言  独覚  - 16/6/3(金) 15:12 -

引用なし
パスワード
   ▼助けて さん:
もしかして「数式」-「計算方法」の計算方法の設定が手動になっていませんか?

もし、手動になっているとコピー時に最初のセルの値がそのまま表示されるようになり
式を入力しなおすとその時点で計算しなおします。

計算方法の設定を自動にするとコピー時点で計算されるようになります。

800 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free