[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでオートフィルタにて3つ以上の条件を抽出』(えくせら)
閲覧ありがとうございます。
オートフィルタにて3つ以上の条件を含まないものを抽出→削除→残っているデータを表示までしたいと思っています。
2つまでは出来てはおりましたが、3つ以上の条件は動かなくなりました…
よろしければご教授願えますでしょうか。
よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
マクロで処理されるならフィルタオプションを使ってはどうですか?
手作業でフィルタオプションで抽出する作業をマクロに記録してコードを整理するといいですよ。
(ウッシ) 2015/07/27(月) 09:46
・データ量がその月ごとに変わってしまう
・そのデータには作業列が作成不可
この為、フィルタオプションを使用せずマクロを組んだほうがいいのかと思ったのですが
恐縮ですが教えて頂けませんでしょうか…
(えくせら) 2015/07/27(月) 10:10
どっちの意味でしょうか?
Sub test1()
Dim tSh As Worksheet Dim mSh As Worksheet
Set mSh = Worksheets("Sheet1") '処理対象シート
'テストデータ作成 mSh.UsedRange.ClearContents mSh.Range("A1") = "dummy1" mSh.Range("A2:A18").Formula = "=ROW(A1)" mSh.Range("A2:A18").Value = mSh.Range("A2:A18").Value
Set tSh = Worksheets.Add '一時作業シート tSh.Range("A1:C1").Value = mSh.Range("A1") '抽出項目名 tSh.Range("A2:C2").Value = Array("<>1", "<>3", "<>5") '抽出条件例
mSh.Range("A1").CurrentRegion.AdvancedFilter _ Action:=xlFilterInPlace, CriteriaRange:= _ tSh.Range("A1:C2"), Unique:=False
mSh.Range("A1").CurrentRegion.Offset(1) _ .SpecialCells(xlCellTypeVisible).EntireRow.Delete
mSh.ShowAllData Application.DisplayAlerts = False tSh.Delete Application.DisplayAlerts = True End Sub
Sub test2()
Dim tSh As Worksheet Dim mSh As Worksheet
Set mSh = Worksheets("Sheet1") '処理対象シート
'テストデータ作成 mSh.UsedRange.ClearContents mSh.Range("A1:D1").Formula = "=""dummy""&COLUMN(A1)" mSh.Range("A1:D1").Value = mSh.Range("A1:D1").Value mSh.Range("A2:D18").Formula = "=ROW(A1)*COLUMN(A1)" mSh.Range("A2:D18").Value = mSh.Range("A2:D18").Value
Set tSh = Worksheets.Add '一時作業シート tSh.Range("A1:C1").Value = mSh.Range("A1:C1").Value '抽出項目名 tSh.Range("A2").Value = "<>3" '抽出条件例 tSh.Range("B3").Value = "<>6" '抽出条件例 tSh.Range("C4").Value = "<>9" '抽出条件例
mSh.Range("A1").CurrentRegion.AdvancedFilter _ Action:=xlFilterInPlace, CriteriaRange:= _ tSh.Range("A1:C4"), Unique:=False
mSh.Range("A1").CurrentRegion.Offset(1) _ .SpecialCells(xlCellTypeVisible).EntireRow.Delete
On Error Resume Next mSh.ShowAllData On Error GoTo 0 Application.DisplayAlerts = False tSh.Delete Application.DisplayAlerts = True End Sub
新規ブックで試してみて下さい。
(ウッシ) 2015/07/27(月) 11:49
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.