アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロ初心者の為、分からず困っておりました。どなたか以下お分かりになりましたら教えていただけませんでしょうか?

「A列に1があり、かつB列に0がある行を削除する。」

どうぞよろしくお願いいたします。

A 回答 (6件)

こんにちは。



ちょっと難しいですね。
Union を使わない方法もあります。
今回は、行全体を消しています。
uRng.EntireRow.Delete

'//
Sub DeleteSepecialRow()
 Dim i As Long
 Dim uRng As Range
 For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  If Cells(i, 1).Value = 1 And Cells(i, 2).Value = 0 Then 'A=1, B=0
   If uRng Is Nothing Then 'uRng が空だったら
    Set uRng = Cells(i, 1)
    Else
    Set uRng = Union(uRng, Cells(i, 1))
   End If
  End If
 Next i
 uRng.EntireRow.Delete '行全体を削除
End Sub
'//
    • good
    • 0
この回答へのお礼

大変助かりました。ありがとうございました。

お礼日時:2017/04/07 12:03

エラー出さずに、以下で可能。



Sub WK()
Dim CNT As Long
Dim END1 As Long
Dim Sh As Worksheet
Set Sh = ActiveSheet
END1 = Sh.Range("A65536").End(xlUp).Row

For CNT = 2 To END1
If Sh.Range("A" & CNT).Value = 1 And Sh.Range("B" & CNT).Value = 0 Then
Sh.Range("A" & CNT).EntireRow.Delete
END1 = END1 - 1
End If
Next CNT
Application.StatusBar = False
End Sub
    • good
    • 0

No.2様のものは、該当行が無い場合、何もセットしないで


uRng.EntireRow.Delete を実行してしまう為、
実行エラーになると思います(確実にエラー)。
    • good
    • 0

こんにちは



エクセルの持っている機能を利用できないかと考えてみました。
オートフィルターを利用して選別する例です。
(タイトル行分の調節をしているのが、ちとくやしいですが)

Sub testSample()
Dim r As Range

Rows(1).Insert '←タイトル行用に調整
Set r = Cells(1, 1).Resize(Cells(Rows.Count, 1).End(xlUp).Row, 2)

r.AutoFilter Field:=1, Criteria1:="1"
r.AutoFilter Field:=2, Criteria1:="0"

r.SpecialCells(xlCellTypeVisible).EntireRow.Delete
ActiveSheet.AutoFilterMode = False

End Sub
    • good
    • 0
この回答へのお礼

大変助かりました。ありがとうございました。

お礼日時:2017/04/07 12:04

#2の回答者です。


タイトルをみたら、
「マクロで特定の文字が含まれる行を削除したいです。」
でしたから、

  If Cells(i, 1).Value = 1 And Cells(i, 2).Value = 0 Then
  ↓
If InStr(1, Cells(i, 1).Value, "1", vbTextCompare) > 0 _
And InStr(1, Cells(i, 2).Value, "0", vbTextCompare) > 0 Then

に替えてください。vbTextCompare というのは、全角・半角を含めてヒットするか、という意味です。
1が含まれるというなら、1,11,51, 115 どこでも1があれば、該当します。
    • good
    • 0

勿論可能ですが、1点質問。


クリアでは無く完全に行削除?
(削除したらその下全体が1行上に繰り上がる?)
    • good
    • 0

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