質問者が試したがうまくいかなかったマクロの記述は、以下の通りです。
Sub オートフィルタtest()
Dim i As Long
Dim S As Range
Dim Sdown As Range
Set S = Selection.Cells(1, i)
Set Sdown = Selection.Cells(2, i)
Rows("6:6").AutoFilter
Sheets(1).Activate
Selection.AutoFilter Field:=i, Criteria1:=">=2", Operator:=xlAnd, _
Criteria2:="<3"
With Range(Sdown, Sdown.End(xlDown))
.Interior.ColorIndex = 40
End With
End Sub
再:好みの列にフィルタをかけたいのですが・・?
大変申し訳ありませんでした。
前回、画像を間違って削除してしまいましたので、
再度、同じ質問を投稿し直します。
前回のぺージ http://oshiete1.goo.ne.jp/qa5593727.html
Windows XP Home Edition
Excel 2002
変数関連の記述の仕方が間違っていると思いますが、
いろいろ試してみましたが、うまく実行できません。
何卒、ご教示お願い致します。
***追記********************
添付画像は Rows("5:5").AutoFilter
となっております、間違えました。
(1)図1の好みの「項目のセル1つ(例:い)」を手動で選択してから 「質問のマクロ実行」します。
(2)次に、同様に好みの他の「項目のセル1つ」を手動で選択してから
(1)と同じ「質問のマクロ実行」します。
(3)次に、同様に好みの他の「項目のセル1つ」を手動で選択してから
(1)と同じ「質問のマクロ実行」します。
・
・
というように、繰り替えし実行したいのです。
(エクセルの繰り替えし機能が使えればよいのですが、当マクロは当方のエクセルでは使えないようでございます)
もちろん、選択する「項目のセル1つ」は4行目でもどこでも結構でございます。
****************************
Sub オートフィルタtest()
Dim i As Long
Dim S As Range
Dim Sdown As Range
Set S = Selection.Cells(1, i)
Set Sdown = Selection.Cells(2, i)
Rows("6:6").AutoFilter
Sheets(1).Activate
Selection.AutoFilter Field:=i, Criteria1:=">=2", Operator:=xlAnd, _
Criteria2:="<3"
With Range(Sdown, Sdown.End(xlDown))
.Interior.ColorIndex = 40
End With
End Sub
こんにちは。
ご質問のマクロは、i は、どうやって決めているのか分かりません。
それから、質問のマクロのコードと、画像のサンプルとは一致していません。
Selection.AutoFilter Field:=i, Criteria1:=">=2", Operator:=xlAnd, _
Criteria2:="<3" ←ここは、"<=3" のはずです。
こちらで、それとは違うものを作っみました。
ダブルクリック・イベントで色がつきます。
注意点は、この部分を間違えると、色の位置がずれます。
Set rng = Me.Range("A5", .Cells(.Cells.Count))
'シートモジュール
'-------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rng As Range
Cancel = True
With Range("A5").CurrentRegion
'AutoFilter の左上端と右下端
Set rng = Me.Range("A5", .Cells(.Cells.Count))
End With
Application.ScreenUpdating = False
With rng
'AutoFilter がない時
If Me.AutoFilterMode = False Then
.AutoFilter
ElseIf Me.FilterMode Then
Me.ShowAllData
End If
'色を最初に消す
.Interior.ColorIndex = xlColorIndexNone
'フィールドを求める
i = Target.Column - .Cells(1).Column + 1
.AutoFilter Field:=i, _
Criteria1:=">=2", _
Operator:=xlAnd, _
Criteria2:="<=3"
With Me.AutoFilter.Range
.Columns(i).Offset(1).Resize(.Rows.Count - 1).Interior.ColorIndex = 40
End With
End With
Application.ScreenUpdating = True
Set rng = Nothing
End Sub
お礼
ご回答、誠に有難うございました。
補足
ご回答、誠に有難うございます。 いやー、誠にすいません。 え~と、 これって、「ActiveX コントロール」CommandButton を使用するんですよね! 私は、今まで、「フォーム コントロール」は使用したことはあるのですが、 「ActiveX コントロール」はないのです。 今、いろいろ行っていますが、「フォーム コントロール」と同じようにマクロを登録すればいいわけで はないようですね。 難しいそうですが、今までのようにコピペだけで、ご回答コードを使用することはできなさそうですね。 私では、即、使用することもできなさそうです。 今、いろいろ調べております・・・