
下記のようなものをみつけました。私の求めるものがこれを変更すればできるのではと思いますが、どのようにしたら良いか分かりません、お教え下さいませんか。列の先頭行には固定の文言が入りますのでも各列の3行までは対象外にしたいと思います。(ちなみに、J列~BD列に空欄のあるもののみ)また、データは1500行程度です。
なお、マクロで別シートに行を削除しようとする元データをそのまま別シートに作れたものを上記のように処理できればなおさらよいのですが・・・・。
Excel VBA A列が特定の値以外の場合、その行を削除
Sub test01()
With ActiveSheet 'アクティブなシートについて
x = .UsedRange.Cells(.UsedRange.Count).Row 'xに最終行を取得
For i = x To 3 Step -1 '最終行から3行目まで下から順に
If .Cells(i, 1) <> "b" Then .Rows(i).Delete 'A列が"b"でなかったら削除
Next '繰り返し
End With
End Sub
No.5ベストアンサー
- 回答日時:
No.4です。
要するにJ列~BD列に一つもデータがない行を削除すれば良いのですね。
Sub Sample2()
Dim i As Long, myRng As Range
With ActiveSheet
For i = 2 To .UsedRange.Rows.Count
If WorksheetFunction.CountA(Range(.Cells(i, "J"), .Cells(i, "BD"))) = 0 Then
If myRng Is Nothing Then
Set myRng = .Cells(i, "J")
Else
Set myRng = Union(myRng, .Cells(i, "J"))
End If
End If
Next i
If Not myRng Is Nothing Then
myRng.EntireRow.Delete
End If
End With
MsgBox "完了"
End Sub
※ 数式によって「空白」に見えるセルではなく、
まったくデータが入っていないセルという前提です。m(_ _)m
No.6
- 回答日時:
④「J列~BD列が全て空欄の行を削除」だったわけですね。
--------------------------------------------------------------------------------
Sub J列からBD列が見た目が全て空欄だったら行削除()
Dim 終 As Long
Dim 行 As Long
Dim 列 As Long
Dim 有 As Boolean
Application.ScreenUpdating = False
With ActiveSheet 'アクティブなシートについて
終 = .UsedRange.Cells(.UsedRange.Count).Row 'xに最終行を取得
For 行 = 終 To 3 Step -1 '最終行から3行目まで下から順に
有 = False 'フラグをリセット
For 列 = 10 To 56 'J列からBD列まで
If Trim(.Cells(行, 列).Text) <> "" Then '見た目が空白でなかったら
有 = True 'フラグをセット
Exit For '中のループを抜ける
End If
Next '繰り返し
If 有 = False Then Rows(行).Delete Shift:=xlUp 'データの無い行を削除
Next '繰り返し
End With
Application.ScreenUpdating = True
End Sub
--------------------------------------------------------------------------------
※ 見た目が空白の物(式の結果が空欄の物や空白文字が有る物も含む)も空欄として処理します。
No.4
- 回答日時:
こんばんは!
横からお邪魔します。
「空白セル」というのは数式によって空白に見えているセルではなく、全くデータが入っていないセルだという前提です。
一気に行削除する方法はどうでしょうか?
Sub Sample1()
Dim lastRow As Long, myRng As Range
With ActiveSheet
lastRow = .UsedRange.Rows.Count
On Error Resume Next
Set myRng = Range(.Cells(2, "J"), .Cells(lastRow, "BD")).SpecialCells(xlCellTypeBlanks)
myRng.EntireRow.Delete
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.3
- 回答日時:
それでしたら以下のようなものはいかがでしょうか?
--------------------------------------------------------------------------------
Sub J列からBD列に空欄が有ったら行削除()
Dim 終 As Long
Dim 行 As Long
Dim 列 As Long
Dim 有 As Boolean
Application.ScreenUpdating = False
With ActiveSheet 'アクティブなシートについて
終 = .UsedRange.Cells(.UsedRange.Count).Row 'xに最終行を取得
For 行 = 終 To 3 Step -1 '最終行から3行目まで下から順に
有 = False 'フラグをリセット
For 列 = 10 To 56 'J列からBD列まで
If .Cells(行, 列) = "" Then
有 = True 'フラグをセット
Exit For '中のループを抜ける
End If
Next '繰り返し
If 有 Then Rows(行).Delete Shift:=xlUp '空白の有る行を削除
Next '繰り返し
End With
Application.ScreenUpdating = True
End Sub
--------------------------------------------------------------------------------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Visual Basic(VBA) VBA 行削除した連番 4 2023/06/27 16:00
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで指定範囲内の空白セルを左詰めで一括削除したいのですが
Visual Basic(VBA)
-
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
エクセルマクロにて最終行まで数式をコピーする構文
Excel(エクセル)
-
-
4
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
5
EXCELのデータで空白列を削除したい
Excel(エクセル)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
Excel VBA A列が特定の値以外の場合、その行を削除
Excel(エクセル)
-
8
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
9
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
10
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
-
11
エクセル 空白を除き左に詰めたいのですが・・・
Windows 8
-
12
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
-
13
VBA 列全体を別シートの列と比較し、同じ値がある行の、右端に値をコピーする方法について
Excel(エクセル)
-
14
Excel VBA 空白行をつめる
Excel(エクセル)
-
15
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
16
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
17
複数のマクロボタンをまとめて一つのマクロボタンにするということ。
Excel(エクセル)
-
18
Vba エクセルマクロで、 A列の、A1セルからA10セルに空白のある行を削除する、のは Range
Excel(エクセル)
-
19
VBA 空白行に転記する
Visual Basic(VBA)
-
20
【VBA】特定の文字が入っている行の一部を抽出して別シートコピーするには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
お店に入るために行列に並んで...
-
PowerPointで表の1つの列だけ...
-
エクセル(勝手に太字になる)
-
エクセルで文字が混じった数字...
-
EXCELで 一桁の数値を二桁に
-
EXCEL > 列が分かれている時、...
-
CSVファイルの指定列だけを...
-
ワークシートのイベントでダブ...
-
エクセル 特定のセルをダブルク...
-
VBAでセル入力の数式に変数を用...
-
OpenOffice(Calc)で列に<1,2>...
-
【Excel VBA】コードの書き方「...
-
エクセル 同じ値を探して隣の...
-
エクセルのある列だけエンター...
-
年が明けたら1年プラスされる...
-
Excelで、計算式と計算結果を表...
-
エクセルの関数(日数の平均の...
-
エクセル 間隔が空いたデータ...
-
数値がない行のAVERAGEの#DIV/0...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
エクセルで文字が混じった数字...
-
エクセルで最初のスペースまで...
-
「B列が日曜の場合」C列に/...
-
エクセル(勝手に太字になる)
-
エクセルの項目軸を左寄せにしたい
-
Excel 文字列を結合するときに...
-
エクセルのセル内の文字の一部...
-
【VBA】特定列に文字が入ってい...
-
Excel、市から登録している住所...
-
文字列に数字を含むセルを調べたい
-
エクセルの表から正の数、負の...
-
VBAで文字列を数値に変換したい
-
エクセルで、列の空欄に隣の列...
-
オートフィルターをかけ、#N/A...
おすすめ情報
②「J列~BD列に1つでも空欄のある行を削除」の意味です。
丁寧さがなかったですね、それと間違っていました。まず、間違いは3行ではなく、2行でした。1行目は表題を入れています、2行目は列ごとに列の内容、「記号」とか「種類」とか「氏名」等の名称を入れている行ということです。それ以外のデータのつにいて、空欄のある行とない行があるので、それを整理してまとめたいし、それを元にして新たなデータとして活用したいということです。対象となるのが、3行目からということになります。
②「J列~BD列に1つでも空欄のある行を削除」の意味です。
丁寧さがなかったですね、それと間違っていました。まず、間違いは3行ではなく、2行でした。1行目は表題を入れています、2行目は列ごとに列の内容、「記号」とか「種類」とか「氏名」等の名称を入れている行ということです。それ以外のデータのつにいて、空欄のある行とない行があるので、それを整理してまとめたいし、それを元にして新たなデータとして活用したいということです。対象となるのが、3行目からということになります。
私の説明が悪るかったかもしれません。J列~BD列に各行に1つでもデータがあれば、その行は全て残しますが、J列~BD列の各行にデータがなければその行はA列~BD列の全部を削除するということです。