• ベストアンサー

VBAで条件式がうまく作れず困っています

VBAで条件式を作りたいのですが、うまくできません。超初心者ですので、分かる方教えてください。 ある項目をみて、値が10、15、40のときその行を削除するというものです。その項目にはいろいろな値が入っています。 構造的には、 if(値が10または15または40) then   行削除 end if となるのでしょうが、カッコの中の書き方を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

>if (cells(gyo,"b")=10 or cells(gyo,"b")=15 or cells(gyo,"b")=40) 40の後の”)”が余計、かつ 最後に、Then がない If Cells(gyo, "B") = 10 Or Cells(gyo, "B") = 15 Or Cells(gyo, "B") = 40 Then    

yamato99
質問者

お礼

ありがとうございます。 できました。感激です。 今後ともよろしくお願いします。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

IF文にThenが抜けてますね。 If (Cells(gyo, "b") = 10 Or Cells(gyo, "b") = 15 Or Cells(gyo, "b") = 40) Then ですね。 IFの代わりに Select Case Cells(gyo, "b") Case 10, 15, 40 Rows(gyo).Delete End Select でもいいです。

yamato99
質問者

お礼

ありがとうございました select caseもこのように使えるんですね

noname#99913
noname#99913
回答No.1

「または」には「OR」演算子を使います。 値=10 OR 値=15 OR 値=40

yamato99
質問者

補足

回答ありがとうございます。 回答をベースに以下のようにしましたが、条件文がエラーになります。 書き方が悪いんでしょうか? Sub test() Dim gyo As Integer Dim egyo As Integer egyo = Worksheets("sheet1").Range("b" & Rows.Count).End(xlUp).Row For gyo = egyo To 5 Step -1 if (cells(gyo,"b")=10 or cells(gyo,"b")=15 or cells(gyo,"b")=40) Rows(gyo).Delete End If Next End Sub

関連するQ&A