![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
下記VBAは特定の行だけ取り出すために組んだマクロの一部ですが、
なぜか.Value Like "W*"の部分が実行されません、
ORの前と後ろを逆にするとやはり前だけしか実行されません。
どこが問題なのでしょうか?
また、"J*"か"W*"以外の行を削除するという文はどう書くのでしょうか?
よろしくお願いします。
For j = Range("A1").End(xlDown).Row To 2 Step -1
With Cells(j, "AB")
If Not .Value Like "J*" Or .Value Like "W*" Then
.EntireRow.Delete
End If
End With
Next j
No.3ベストアンサー
- 回答日時:
>If Not .Value Like "J*" Or .Value Like "W*" Then
["J*"か"W*"以外の行を削除する]
これは、排他的論理積の内容ですね。
英米人は、何の問題もなく答えられるけれども、日本人などは、どうしても戸惑ってしまいます。英語には、こういう表現がありますが、日本語には、そういう表現があっても、言葉には正確に表す論理がありません。もし、本格的なプログラミングをおやりになるなら、是非、学ばれたほうがよいです。ベン図を書いて試してみるとよいです。
["J*"*か*"W*"以外の行を削除する]
「か=or(和)」が否定になると「and(積)」に変わると覚えていればよいです。
If Not (UCase(.Value) Like "J*" Or Not UCase(.Value) Like "W*" Then
または
If Not UCase(.Value) Like "J*" And Not UCase(.Value) Like "W*" Then
このように演算子が変わります。
No.2
- 回答日時:
こんばんは!
せっかくコードをお考えなのですが、一気に削除する方法はどうでしょうか?
一例です。
Sub Sample1()
Dim i As Long, myStr As String, myRng As Range
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
myStr = Left(Cells(i, "AB"), 1)
If InStr("JW", myStr) = 0 Then
If myRng Is Nothing Then
Set myRng = Cells(i, "AB")
Else
Set myRng = Union(myRng, Cells(i, "AB"))
End If
End If
Next i
If Not myRng Is Nothing Then
myRng.EntireRow.Delete
End If
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
>"J*"か"W*"以外の行を削除する
If Not(.Value Like "J*" And .Value Like "W*") Then
又は個別に
If Not .Value Like "J*" And Not .Value Like "W*" Then
ではないですかね?
⇒双方がTrueでない事が条件成立になるのでAndでしょうね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) VBAで教えて頂きたいのですが? 1 2022/04/29 02:36
- Visual Basic(VBA) VBAで実行時エラー'424' オブジェクトが必要ですと出る 2 2022/10/07 09:25
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) エクセル VBA 難しいです 1 2023/02/21 15:39
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
Excel VBA IF文がうまく動作しないわけがわかりません…
Visual Basic(VBA)
-
エクセルVBAのIF文の否定の複数条件
Excel(エクセル)
-
-
4
(Excel VBA)and,orについて
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
【VBA】if Like Or Andの組み合わせについて
Visual Basic(VBA)
-
7
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
8
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
11
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
12
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
15
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
16
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
17
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
18
UserForm1.Showでエラーになります。
工学
-
19
Excel vbaで特定の文字以外が入っている時、メッセージを表示させるプログラムについて
Visual Basic(VBA)
-
20
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バクサイの投稿を削除したいの...
-
指定した文字があった場合、そ...
-
VBA:Openステートメントで開い...
-
(Access)複数条件の重複デー...
-
もう関わりたくない人がいたらL...
-
エクセルで住所の混在する「丁...
-
Gboardの予測変換についての質...
-
VBA IF文でORを使ったとき後ろ...
-
今日の日付が過ぎたらその行を...
-
おしえてgooの質問回答履歴の削...
-
【エクセル】セル内の右側のみ...
-
教えてgooの運営に問い合わせす...
-
喧嘩をしてLINE削除され、 また...
-
Facebookメッセンジャーの不具合
-
ウェブページへのアクセス不可 ...
-
Yahooフリマってどれくらい時間...
-
エクセルで下の空白行を削除したい
-
CD-Rに焼いた音楽を消すには☆
-
告白してフラれた相手の連絡先...
-
すべてやりきった、大満足を意...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
指定した文字があった場合、そ...
-
vba 削除
-
VBA:Openステートメントで開い...
-
エクセルで住所の混在する「丁...
-
もう関わりたくない人がいたらL...
-
今日の日付が過ぎたらその行を...
-
ハメ撮りが流出したら
-
喧嘩をしてLINE削除され、 また...
-
エクセルVBAで行削除時にエラー...
-
外付けSSDのデータを改ざんされ...
-
Facebookメッセンジャーの不具合
-
lineスタンプの使用した使用履...
-
この質問サイトはどうしてヤフ...
-
アクセスにおいて間違って削除...
-
女友達にLINEしたら、既読スル...
-
ダブルクォーテーションの削除...
-
VBA IF文でORを使ったとき後ろ...
-
すべてやりきった、大満足を意...
-
(Access)複数条件の重複デー...
-
回答のついた質問を削除すると...
おすすめ情報