![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Excel VBAでご教示ください。
オートフィルタの条件が2つあります。
1.セルG1に入っている基準日より、以前のもの(基準日は含めない)
2.ステータスが「完了」以外のもの
つまり、基準日がきているのに書類が完了していないものを抽出したい。
そして、抽出されたものにだけ黄色い色にしたい。
以下のVBAを作りましたが、該当する値がないとき(0件の時)全部に色が塗られてしまいました。
該当があるときはセルを塗る、該当なし0件の時には色は塗らない。
このようにするには、IF文などを使うしか方法がないのでしょうか。
Sub TEST9_2()
Dim kijyun As Long
kijyun = Range("E1").Value
Range("B2:E7").AutoFilter Field:=4, Criteria1:="<" & Cells(1, 7)
Range("B2:E7").AutoFilter Field:=3, Criteria1:="<>完了"
Range("B3:E7").Interior.ColorIndex = 6
End Sub
![「Excel VBAでフィルタしたものに色」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/d/543131185_66ae24dd2ef09/M.png)
No.3ベストアンサー
- 回答日時:
IF文を使うのが一般的ですし可読性も高いと思います。
SUBTOTAL関数を使えばフィルター後に表示されているものについてのみ演算することができますので、その結果により色を塗るか塗らないかの指示をすればよいと思います。
通常、データ個数をだすのはCOUNTAですが、フィルター後のデータ個数をだすのがSUBTOTAL(3,範囲)になります。
例えば、H1セルに『=SUBTOTAL(3,B:B)』と入力しておけば、該当なしのときは見出し行のみが残るのでデータ個数は1になります。H1セルが1のときのみ色を塗らないようにすれば解決です。もちろん、これと同等のことをvbaで記述してもよいです。
No.2
- 回答日時:
>このようにするには、IF文などを使うしか方法がないのでしょうか。
IF文に限りませんが、条件を判定して、その条件によって異なる処理をさせたいのであれば、条件によって処理を分岐する命令を使うというだけのことです。
No.1
- 回答日時:
こんばんは
>IF文などを使うしか方法がないのでしょうか。
普通に処理するならそうでしょうね。
E列に必ず日付があるのなら、CountAで表示行を数えれば、表示行数を求められます。
他の方法としては、範囲に必ず表示されている行を含めておく(タイトル行、あるいは8行目とか)という方法も考えられます。
色付けしたら、その行(タイトル行など)の色は消すといった要領です。
あるいはループで1行ずつHidden属性を見て、色を付けるとか。
(最初のIF文で行うのと、あまり変わりませんけれど・・)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
誕生日にもらった意外なもの
みなさんがもらった誕生日プレゼントで面白いものがあったらぜひ教えてください!
-
Excel 対象のセルに入力が無いとセルに入力できないようにしたい
Excel(エクセル)
-
文字2桁、3桁交じりの文字列を並び替えるマクロ
Excel(エクセル)
-
セルの数を求めたい
Excel(エクセル)
-
-
4
Excelの表示についての質問
Excel(エクセル)
-
5
Excelの数式の効率化について
Excel(エクセル)
-
6
条件付き書式でやりたいのですが
Excel(エクセル)
-
7
Excelについて教えてください
Excel(エクセル)
-
8
再質問です。マクロの修正箇所を教えてください。
Excel(エクセル)
-
9
Excelについて質問です。 A1タブ 1234-56--798 56の後ろにB1の98を付け加えて
Excel(エクセル)
-
10
Excelで、決まった行を繰り返しコピーする
Excel(エクセル)
-
11
一つのセルに(例えばA1)入力された3桁・4桁の数字を並べ替えて同一行のセルに表示させる。
Excel(エクセル)
-
12
非表示列の再表示に失敗
Excel(エクセル)
-
13
エクセルの関数について教えてください
Excel(エクセル)
-
14
エクセルで 自動的に◯や数字を表示させることできます? 例えばなんですが 日付 山田 1 ◯ みたい
Excel(エクセル)
-
15
【ExcelVBA】最終行の取得で困ってます
Excel(エクセル)
-
16
2列に入っているデータを1列で表示する関数について
Excel(エクセル)
-
17
データチェックを行うエクセルマクロをおしえてほしい
Excel(エクセル)
-
18
EXCELのページを、枠線を維持したまま印刷する方法をありませんか?
Excel(エクセル)
-
19
複数列にわたる延べ活動日の算出
Excel(エクセル)
-
20
エクセルで数字の組み合わせを列記したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルオートフィルタで余計...
-
Excel関数、何がいけないのかわ...
-
色フィルターをかけた状態で、...
-
エクセルの計算表の下向き三角...
-
エクセルで、桁数の異なるデー...
-
エクセルについて。 ソートで絞...
-
photoshopでフィルタを部分的に...
-
オートフィルタで抽出したデー...
-
エクセルを使用してデジタルフ...
-
エクセルのフィルタ リスト範...
-
エクセル:色の付いたデータを...
-
=SUBTOTAL に =COUNTIF の機能...
-
教えて下さい!関数SUBTOTALとC...
-
エクセルのフィルタをかけると...
-
Excel マクロ オートフ...
-
Excel2010 フィルタで抽出できない
-
オートフィルタをしても本当の...
-
グーグルスプレッドシート 連番...
-
行番号の文字の色が青色の理由?
-
5の倍数の日付だけを抽出したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルオートフィルタで余計...
-
エクセルで、桁数の異なるデー...
-
教えて下さい!関数SUBTOTALとC...
-
色フィルターをかけた状態で、...
-
Excel関数、何がいけないのかわ...
-
オートフィルタで抽出したデー...
-
Excel VBAでフィルタしたものに...
-
エクセルの計算表の下向き三角...
-
エクセルのフィルタをかけると...
-
行番号の文字の色が青色の理由?
-
エクセルを使用してデジタルフ...
-
excelで奇数の行のみ削除したい
-
5の倍数の日付だけを抽出したい
-
エクセルでのオートフィルタオ...
-
色のついたセルにフラグを立た...
-
エクセル:色の付いたデータを...
-
【Excel】 可視セルへの貼り付...
-
=SUBTOTAL に =COUNTIF の機能...
-
Excelでオートフィルタ時に交互...
-
関数で可視セルのデータ個数カ...
おすすめ情報