- ベストアンサー
VBAで条件式がうまく作れず困っています
VBAで条件式を作りたいのですが、うまくできません。超初心者ですので、分かる方教えてください。 ある項目をみて、値が10、15、40のときその行を削除するというものです。その項目にはいろいろな値が入っています。 構造的には、 if(値が10または15または40) then 行削除 end if となるのでしょうが、カッコの中の書き方を教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>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
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
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 でもいいです。
お礼
ありがとうございました select caseもこのように使えるんですね
「または」には「OR」演算子を使います。 値=10 OR 値=15 OR 値=40
補足
回答ありがとうございます。 回答をベースに以下のようにしましたが、条件文がエラーになります。 書き方が悪いんでしょうか? 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
お礼
ありがとうございます。 できました。感激です。 今後ともよろしくお願いします。