「みんな教えて! 選手権!!」開催のお知らせ

VBAのコード入力時に 型が一致しません とエラー表示が出てしまいます、、。
対処法がわからず困っています。修正方法を教えていただきたいです。
以下のものが入力したコードです。
よろしくお願いいたします。(´;ω;`)


Sub AA1()
Dim i
For i = 60 To 104
If Cells(i, "D") Like "*入*" Then
Range(Cells(i, "AM"), Cells(i, "AP")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
 ElseIf Cells(i, "D") Like "*退*" Then
Range(Cells(i, "AM"), Cells(i, "AL")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
ElseIf Cells(i, "D") = "空" Then
Range(Cells(i, "AN"), Cells(i, "AL")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
ElseIf Cells(i, "D").Interior.Color = RGB(252, 228, 214) And Cells(i, "D") = "" Then '空白でオレンジ色なら
Range(Cells(i, "AL"), Cells(i, "AN")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
End If
Next i

Dim i1
For i1 = 60 To 104
If Cells(i1, "E") Like "*入*" Then
Range(Cells(i1, "AS"), Cells(i1, "AP")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
 ElseIf Cells(i1, "E") Like "*退*" Then
Range(Cells(i1, "AM"), Cells(i1, "AP")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
ElseIf Cells(i1, "E") = "空" Then
Range(Cells(i1, "AO"), Cells(i1, "AQ")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
ElseIf Cells(i1, "E").Interior.Color = RGB(252, 228, 214) And Cells(i1, "E") = "" Then '空白でオレンジ色なら
Range(Cells(i1, "A0"), Cells(i1, "AQ")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
End If
Next i1
End Sub

A 回答 (6件)

No5です。



連投失礼。
テストデータを修正し忘れましたので、訂正しておきます。

誤:For r = 16 To 27
   ↓ ↓ ↓
正:For r = 60 To 104
    • good
    • 0

こんにちは



>型が一致しません とエラー表示が出てしまいます、、。
>対処法がわからず困っています。
エラーが発生した場合、メッセージとエラーの発生した行が表示されますので、その状態での変数の値などを調べてみれば対処できると思います。
イミディエイトウインドウやウォッチウィンドウを利用しましょう。

ざっと見ただけですが、エラーの直接の原因は最後の方にある、
>Range(Cells(i1, "A0"), Cells(i1, "AQ"))~~
が、セル位置の指定として正しくないのでエラーになっているのでしょう。
(「A0」という列番号は存在しませんので)
エラーが発生しているのは、その行ではありませんか?


以下は、ご質問には関係ありませんけれど・・・
全体的に見て、同じような処理を繰り返し記述なさっていますが、事前に整理してからコード化すれば、多少なりとも単純化できそうに思います。
(理解しやすいとは限りませんけれど・・)
考え方は多少変わってしまいますけれど、例えば、以下のような記述でも同様の処理は可能と思います。
(ご提示の内容と同等なので、色付けするのみでキャンセルはしません)

Sub AA1()
Dim r As Long, c As Long, orange As Long
Dim pos, p As Long, txt As String, cf As Boolean
orange = RGB(252, 228, 214)
pos = Split("394 424 382 394 383 413", " ")

For r = 16 To 27
For c = 0 To 1
txt = Cells(r, 4 + c).Text
cf = Cells(r, 4 + c).Interior.Color = orange
If InStr(txt, "入") Then p = pos(c) _
Else If InStr(txt, "退") Then p = pos(2 + c) _
Else If txt = "空" Or (txt = "" And cf) Then p = pos(4 + c) _
Else p = 0
If p > 0 Then Cells(r, Int(p / 10)).Resize(, p Mod 10).Interior.Color = vbRed
Next c
Next r
End Sub
    • good
    • 0

VBEに貼り付けてみましたがエラーは確認できません。

一つ気になるのは最後のEndとSubの間が全角スペースなことです。関係ないかな。
    • good
    • 0

実行時じゃ無くてコード入力時???



どういう操作をしてるか書かかないと、漠然とし過ぎてます。
    • good
    • 0

next に対する forはチャント有りますので問題有りません。



どこでエラーが出ます?

私のpcではチャント正しく動きますよ。
    • good
    • 0

「型が一致しません」よりも前に「Nextに対応するForがありません」とかが出てこなければおかしいように思います。


というか、Ifは行頭に書かれていなければならないのですが、このソースではElseIf が何か所か出てきます。これは「ElseIf」という変数として認識されるように思います。
For~Next と If~Else~End If の入れ子の構造をはっきり認識するところから始めてみてはいかがでしょうか。

とりあえず、私が書き直してみたコードを載せますが、何をやりたいのか不明なので、これが正解かどうかはわかりません。

Sub AA1()
Dim i
For i = 60 To 104
If Cells(i, "D") Like "*入*" Then
Range(Cells(i, "AM"), Cells(i, "AP")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
Else
If Cells(i, "D") Like "*退*" Then
Range(Cells(i, "AM"), Cells(i, "AL")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
Else
If Cells(i, "D") = "空" Then
Range(Cells(i, "AN"), Cells(i, "AL")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
End If
End If
If Cells(i, "D").Interior.Color = RGB(252, 228, 214) And Cells(i, "D") = "" Then '空白でオレンジ色なら
Range(Cells(i, "AL"), Cells(i, "AN")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
End If
End If
Next i

Dim i1
For i1 = 60 To 104
If Cells(i1, "E") Like "*入*" Then
Range(Cells(i1, "AS"), Cells(i1, "AP")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
Else
If Cells(i1, "E") Like "*退*" Then
Range(Cells(i1, "AM"), Cells(i1, "AP")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
Else
If Cells(i1, "E") = "空" Then
Range(Cells(i1, "AO"), Cells(i1, "AQ")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
Else
If Cells(i1, "E").Interior.Color = RGB(252, 228, 214) And Cells(i1, "E") = "" Then '空白でオレンジ色なら
Range(Cells(i1, "A0"), Cells(i1, "AQ")).Interior.Color = RGB(255, 0, 0) ' セルが赤色
End If
End If
End If
End If
Next i1
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A