プロが教えるわが家の防犯対策術!

教えて下さい。


シート1A列1行目から4桁の数字が並んでいます。
シート2F列にシート1A列にある4桁数字があれば、その行を削除したいです。
シート1A列の4桁数字の数(削除対象)は変動し(行数は変動する)、ゼロの時(削除対象なし)もあります。
VBAを教えて下さい。
For NextやIfを使えば出来ますか?
よろしくお願いします。

A 回答 (3件)

No1です。



>For Each c In 〜の、cはどういう意味ですか?
ループの構文のうちのひとつで、inの後のオブジェクトの要素に対して、順にループするものです。
https://docs.microsoft.com/ja-jp/dotnet/visual-b …

例示の場合、変数 c は、Range内の各要素(=セル)を意味することになり、ループ内ではそれぞれのセルをcで参照する形式になります。
    • good
    • 0
この回答へのお礼

お返事が遅くなり申し訳ございません。
「変数」なんですね。
いろいろ調べた時、For Eachでは、Dimステートメントを使った変数の宣言は省略できるとありました。
省略している、という認識であっていますか?

お礼日時:2021/09/28 21:07

こんにちは


>シート2F列にシート1A列にある4桁数字があれば、その行を削除したいです。
この条件の解釈があいまいな気がしますが、、

シート1A列の任意行に1234
シート2F列2行目 こんにちは1234です 
これは、ある事になるのでしょうかね、、、

ある事になると、、True条件がシート2からシート1を参照する方法だと
文字数で区切って暫定キーワードで参照しないといけないのでややこしくなりますね。シート1からだと比較的容易かも知れませんが、いずれの場合でも誤動作の可能性が出て来ますかね。
 
Sub Sample1()
Dim r As Range, r2 As Range, delR As Range
Dim SH1 As Worksheet, SH2 As Worksheet
Set SH1 = Worksheets("Sheet1")
Set SH2 = Worksheets("Sheet2")
For Each r In SH1.Range("A1", SH1.Cells(Rows.Count, "A").End(xlUp))
For Each r2 In SH2.Range("F1", SH2.Cells(Rows.Count, "F").End(xlUp))
If Len(r.Text) = 4 And r2.Text Like "*" & r.Text & "*" Then
If delR Is Nothing Then Set delR = r2 Else Set delR = Union(delR, r2)
End If
Next
Next
If Not delR Is Nothing Then SH2.Activate: delR.EntireRow.Select
End Sub

シート1からシート2を探す形、、二重ループ、Like(InStr関数もOK)
(選択として処理)
条件はまだ不十分かもしれませんが参考まで
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
説明不足で申し訳ございません。
シート2F列には、4桁数字しかありません。
(1234や5678のような。)

お礼日時:2021/09/26 20:42

こんにちは



>For NextやIfを使えば出来ますか?
できると思います。

以下は、条件に合致したF列の値の表示色を赤にする内容にしてありますが、ご参考までに。
(セルの値の色を変える代わりに、行全体を削除すればご質問の内容になります)

Sub Sample()
Dim r As Range, u As Range
Set r = Worksheets("シート1").Range("A:A")

With Worksheets("シート2")
 For Each c In Range(.Cells(1, 6), .Cells(Rows.Count, 6).End(xlUp))
  If WorksheetFunction.CountIf(r, c) Then
   If u Is Nothing Then Set u = c Else Set u = Union(u, c)
  End If
 Next c
End With

If Not u Is Nothing Then u.Font.Color = RGB(255, 0, 0)
End Sub
    • good
    • 0
この回答へのお礼

いつもありがとうございます!
質問ですが、For Each c In 〜の、cはどういう意味ですか?初心者過ぎて分かりません。教えて下さい。

お礼日時:2021/09/26 20:39

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