Sub Sample() Dim i As Long For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 1) = "田中" Or _ Cells(i, 1) = "土屋" Or _ Cells(i, 1) = "鈴木" Then Cells(i, 3) = "○" End If Next i Range("A1").AutoFilter Field:=3, Criteria1:="○" End Sub
Sub Macro4()'-------------------------------フィルター解除
With Worksheets("Sheet1")
If .AutoFilterMode Then
.AutoFilterMode = False
End If
.Range("A1").AutoFilter _
Field:=7, _
Criteria1:=">=200", Operator:=xlAnd, _
Criteria2:="<300"
.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Sheet2").Range("A1")
.AutoFilterMode = False
End With
End Sub
Sub Macro3_2()'--------------------------------------インプットボックスからの抽出
Dim myRL As Long
Dim myRH As Long
Worksheets("Sheet2").Range("A:I").Delete ’抽出先Sheet2のA:I列を削除
myRL = Application.InputBox(prompt:="以上の数値を入力しなさい", Type:=1) '下限値の入力
myRH = Application.InputBox(prompt:="未満の数値を入力しなさい", Type:=1) '上限値の入力
With Worksheets("Sheet1")
.Range("A1").AutoFilter _
Field:=7, _
Criteria1:=">=" & myRL, Operator:=xlAnd, _
Criteria2:="<" & myRH
.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Sheet2").Range("A1")
End With
With Worksheets("Sheet2")
.Activate
.Columns("A:I").EntireColumn.AutoFit
End With
End Sub
絞り込み
Criteria1:="田中"
Criteria1:="<>田中"
Criteria1:="東京*" ''東京で始まる Criteria1:="*横浜*" ''横浜を含む Criteria1:="*区" ''区で終わる
Criteria1:=""
''または
Criteria1:="="
Criteria1:="<>"
Criteria1:="100" ''100と等しい Criteria1:=">100" ''100より大きい Criteria1:="<=100" ''100以下
Criteria1:=">2011/3/31"
Criteria1:=">40633"
Criteria1:=">3月31日"
Criteria1:=">" & DateSerial(2011, 3, 31)
'--------------------------------------------------------
2003/2007 | 2010 |
×文字列(yyyy/m/d) ○日付型(DateValue) |
○文字列(yyyy/m/d) ×日付型(DateValue) |
表示形式 | 2003/2007 | 2010 |
標準書式 (*2001/3/14) |
×文字列(yyyy/m/d) ○日付型(DateValue) |
○文字列(yyyy/m/d) ×日付型(DateValue) |
表示形式 | 2003/2007 | 2010 |
標準書式 (*2001/3/14) |
×文字列(yyyy/m/d) ○日付型(DateValue) |
○文字列(yyyy/m/d) ×日付型(DateValue) |
標準書式 (*2001年3月14日) |
○文字列(yyyy年m月d日) ×日付型(DateValue) |
○文字列(yyyy年m月d日) ×日付型(DateValue) |
Sub Sample8() Range(Range("A2"), Cells(Rows.Count, 1)).NumberFormat = "m/d/yyyy" Range("A1").AutoFilter Field:=1, Criteria1:=DateValue("2010/8/22") End Sub
または
Sub Sample8() Range(Range("A2"), Cells(Rows.Count, 1)).NumberFormatLocal = "yyyy/m/d" Range("A1").AutoFilter Field:=1, Criteria1:=DateValue("2010/8/22") End Sub標準ではない表示形式にするのなら
Sub Sample8() Range(Range("A2"), Cells(Rows.Count, 1)).NumberFormat = "yyyy/m/d;@" Range("A1").AutoFilter Field:=1, Criteria1:="2010/8/22" End Subたとえば「(年は問わず)1月の日付だけ」絞り込むには次のようにします。
'-----------------------------------------------------------
Sub Sample9() Range("A1").AutoFilter Field:=1, _ Criteria1:=xlFilterAllDatesInPeriodJanuary, _ Operator:=xlFilterDynamic End Sub
|
数値には0から5を指定します。この数値は、それぞれ次の意味です。
0:後ろに指定した日付の年
1:後ろに指定した日付の月
2:後ろに指定した日付の日
3:後ろに指定した時刻の時
4:後ろに指定した時刻の分
5:後ろに指定した時刻の秒
上記のSample11プロシージャでは、次の意味になります。
もちろん、次のような指定も可能です(結果はともかく)。