[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フィルタ 2種類の抽出作業を繰り返すマクロ』(ぺもと)
いつもお世話になっております。
A列に、"あああ" "いいい" "ううう" "えええ" "おおお" "かかか"
という6種類の文字列がいくつかランダムに並んでいます。
1:"あああ"だけ、除外してフィルタ抽出する作業 2:フィルタで(すべて選択)をする作業 この2つの作業を、1つのボタンを押すごとに交互に実行するというマクロを組みたいと思っています。
別々のマクロになるので、ボタンを2つ作るしかないでしょうか?
お忙しいとは思いますが、ご回答よろしくお願いいたします。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
AutoFilterオブジェクト の FilterModeプロパティ を調べて、
絞り込んでいれば、それは True となっているので → 全部表示をさせる。
絞り込んでいなければ、それは False となっているので → 抽出させる。
と言う分岐を塩梅する。
(半平太) 2016/10/24(月) 16:55
半平太さん
お返事ありがとうございます。 分岐の塩梅というのはどういうことでしょうか。 初心者ですみません。
AutoFilter、FilterModeなど色々調べながらコード作成してみました が、当然ながら実行できません。 コンパイルエラー:修正候補 ステートメントの最後 1行目の「Field」が反転して、全体が赤文字になります。
Sub 加入経過()
With Range("$A$4:$Q$104").AutoFilter Field:=3, Criteria1:=Array( _ "いいい", "ううう", "えええ", "おおお", "かかか"), Operator:=xlFilterValues = .Range("$A$4:$Q$104").AutoFilter Field:=3 End With End Sub (ぺもと) 2016/10/25(火) 11:02
With ActiveSheet.AutoFilter 'オートフィルターが設定してあるセル範囲の1列目に条件が設定してあれば、 If .Filters(1).On Then '1列目の条件を「すべて」にする .Range.AutoFilter 1 'そうでなければ、 Else '1列目の条件を「あああ」以外にする .Range.AutoFilter 1, "<>あああ" End If End With End Sub
「AutoFilterメソッド」と
「AutoFilterプロパティ」とあってややこしいですね^^;
違いがわかりますかね?
(まっつわん) 2016/10/25(火) 13:05
まっつわんさん
お返事ありがとうございます。 あなたの提示してくれたコードを実行したら、思い描いた動きが出来ました。
メソッド・・・プロパティ・・・とてもややこしいです。 違いははっきり申しあげてわかりません;;
分かりやすくコメントも入れていただきありがとうございます。 勉強になります。 (ぺもと) 2016/10/25(火) 13:43
フィルターの状態を取得したい場合は
ワークシートオブジェクトのAutoFilterプロパティより情報を取得して、
フィルターの操作は、Rangeオブジェクトに対して命令(=メソッド)するみたいですね^^
なので、
ActiveSheet.AutoFilter.Range.AutoFilter 1
(アクティブなシートのオートフィルターの掛かっているセル範囲にオートフィルターの1列目の操作)
みたいなまわりくどい表現になってます^^;
ヘルプを見るときにその辺を解ってると、よりヘルプの内容が頭に入ってくるかと思います^^
(まっつわん) 2016/10/25(火) 14:23
まっつわんさん、お返事が遅くなり申し訳ありません。
英語の意味をよくよく考えたら分かってきそうです・・・! 時間がかかりそうですけど、なんとなく理解できました。 ひとつひとつの意味を丁寧に捉えようと思います。 (ぺもと) 2016/10/26(水) 16:19
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.