
No.2ベストアンサー
- 回答日時:
新規Bookを準備して、標準モジュールに下記コードをコピペして
実行してみて下さい。
Sub try()
'ダミーデータのセット
Range("A1").Value = "名前"
Range("A2:A6").Value = Application.Transpose(Array("A", "B", "A", "C", "A"))
Range("B2:B6").Value = "=Row()-1"
Range("B2:B6").Value = Range("B2:B6").Value
MsgBox "データセット完了"
Dim r As Range
'オートフィルタ 抽出条件"A"
Range("A1").AutoFilter Field:=1, Criteria1:="A"
MsgBox "条件Aで抽出しました"
'rに項目行(A1)は消さないので、A2~A列最終行の”見えているセル”の値をセットし
'その値をクリア
Set r = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible)
r.ClearContents
MsgBox "可視セルをクリアしました"
'オートフィルタを解除
Range("A1").AutoFilter
MsgBox "オートフィルタを解除しました"
'rにセットした範囲で空白セルのある行(A列がクリアされた範囲)を削除し、上に詰める
r.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
MsgBox "条件Aのあった行を削除し、上に詰めました"
End Sub
>メゾットとは…?
参考書か何かを見ながら、コードを作っているのではないのでしょうか?
それであれば、大抵記載されていると思いますよ。
取り敢えずは上のコードで動きを確かめてみて下さい。
No.5
- 回答日時:
こんばんは。
解答はすでに出ていますから、参考程度に書いてみました。
私には、SpecialCells の使い方は、少し難しいような気がしました。
.SpecialCells(xlCellTypeVisible).Rows.Count =1 のときは、タイトル行が存在しているだけです。
.Offset(1).Resize(.Rows.Count - 1) は、タイトル行を削除しないようにしています。
Sub TestSort_Delete()
Dim lngRow As Long
With ActiveSheet
'エラーが発生したら、ErrHandler に飛ぶ
On Error GoTo ErrHandler
.Range("A1").CurrentRegion.AutoFilter _
Field:=1, _
Criteria1:="○"
'○の行の削除の方法
With .AutoFilter.Range
'すでに削除されてしまっているときは、削除を行わない
If .SpecialCells(xlCellTypeVisible).Rows.Count > 1 Then
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End If
End With
ErrHandler:
If Err.Number > 0 Then
MsgBox Err.Number & ": " & Err.Description, 48
End If
.Range("A1").CurrentRegion.AutoFilter
End With
End Sub
No.4
- 回答日時:
マクロはコンピュータ内部では「VBA」と言うコードで登録されています。
VBAを多少いじれるようになるとムダのないお好み通りのマクロを作れるようになりますが、stay_stayさんはマクロ初心者とのことですのでとりあえず下記の方法ではいかがでしょう?
1.マクロの記録を開始
2.オートフィルタの設定(データ→フィルタ→オートフィルタ)
3.あらかじめデータが入力されている範囲を範囲選択しておく
(この時のポイントはデータの1番左上に当たるセルをアクティブにしておき、[ctlr] + [shift] + [→] でデータ範囲の右端まで範囲選択させ、同様に[ctlr] + [shift] + [↓] でデータ範囲の下端まで範囲選択させる。この方法でマクロを作るとデータが10行しかないときでも20行あるときでも常にデータ全体を範囲選択してくれる。)
4.オートフィルタでA列に○が入っている行を抽出
5.表示されている行だけが選ばれている状態にする(編集→ジャンプ→セル選択→可視セル)
6.行の削除
7.オートフィルタで全てのセルを表示させる
8.マクロ記録終了
No.3
- 回答日時:
ANo.2です。
>Range("A1").AutoFilter Field:=1, Criteria1:="A"
Excelのバージョンによっては
Range("A1").AutoFilter Field:=1, Criteria1:="=A"
こっちの方がいいかな?(Aの前に"="をつける)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロ削除再抽出する方法を教えて下さい。 6 2022/11/26 11:03
- Visual Basic(VBA) セルの変更で処理するマクロについて 1 2022/12/20 18:09
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/03/01 15:44
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
=SUBTOTAL に =COUNTIF の機能...
-
行番号の文字の色が青色の理由?
-
エクセルオートフィルタで余計...
-
色フィルターをかけた状態で、...
-
Excel関数、何がいけないのかわ...
-
オートフィルタで抽出したデー...
-
CでIIRフィルタを作りたいので...
-
Excel2010 フィルタで抽出できない
-
エクセル:色の付いたデータを...
-
EXCELで、空白セルを除いて別シ...
-
関数で可視セルのデータ個数カ...
-
エクセルのフィルタをかけると...
-
5の倍数の日付だけを抽出したい
-
Excelで特定も文字を含む行全て...
-
任意の順位があり、列範囲内か...
-
エクセル 最新データのみを表...
-
エクセルで、桁数の異なるデー...
-
エクセルでのオートフィルタオ...
-
excelで奇数の行のみ削除したい
-
Excelのセルのデータ:年...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルオートフィルタで余計...
-
Excel関数、何がいけないのかわ...
-
行番号の文字の色が青色の理由?
-
教えて下さい!関数SUBTOTALとC...
-
オートフィルタで抽出したデー...
-
色フィルターをかけた状態で、...
-
=SUBTOTAL に =COUNTIF の機能...
-
エクセルのフィルタをかけると...
-
エクセルの計算表の下向き三角...
-
エクセルで、桁数の異なるデー...
-
Excel VBAでオートフィルタで抽...
-
オートフィルタをかけた表に一...
-
エクセルでのオートフィルタオ...
-
5の倍数の日付だけを抽出したい
-
Excel2010 フィルタで抽出できない
-
エクセル:色の付いたデータを...
-
excelで奇数の行のみ削除したい
-
Excel VBAでフィルタしたものに...
-
色のついたセルにフラグを立た...
-
Excelのセルのデータ:年...
おすすめ情報