Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


977 / 13644 ツリー ←次へ | 前へ→

【77147】条件付き書式で色づけしたセルをカウント ゆか 15/5/26(火) 21:37 質問[未読]
【77148】Re:条件付き書式で色づけしたセルをカウント 独覚 15/5/27(水) 9:45 発言[未読]
【77154】Re:条件付き書式で色づけしたセルをカウント ゆか 15/5/28(木) 9:34 質問[未読]
【77155】Re:条件付き書式で色づけしたセルをカウント 独覚 15/5/28(木) 10:51 回答[未読]
【77156】Re:条件付き書式で色づけしたセルをカウント 独覚 15/5/28(木) 10:59 発言[未読]
【77161】Re:条件付き書式で色づけしたセルをカウント ゆか 15/5/28(木) 20:49 お礼[未読]

【77147】条件付き書式で色づけしたセルをカウント
質問  ゆか  - 15/5/26(火) 21:37 -

引用なし
パスワード
   こんばんは。

Excel2010を使用しています。
A列には、名前を祝日として名前を付け、
A1には祝日、A2以降には日付(yyyy/m/d)が入っています。

それ以外は下記の様に、入っています。

4行目
E4…年(#"年")
G4…月(#"年")
L4…=DATE(E4,G4,1)

6行目
E6…=L4-WEEKDAY(L4)+1
F6…=E6+1

K6==J6+1

7行目
E7…=E7+1
F7…=E7+1

K7==J7+1

上記が11行目まで続いています。

これらに下記の条件付き書式を設定しています。

範囲 =$E$6:$K$11
優先順位1. 数式 =MONTH(E6)<>$G$4 
      セルの色 白、背景1
      フォントの色 白、背景1、黒+基本色5%
優先順位2. 数式  =COUNTIF(祝日,E6)>0
      セルの色 赤

この条件の結果赤になっている物だけをE41でカウントしたいのです。

また、逆に$E$6:$K$11範囲内で赤塗ったセルの年月日
もしくは
条件付きで赤く染まった年月日をAHに表示させたいです。

出来るかどうかもわからない質問をさせていただいて申し訳ありませんが、
ご回答いただければ幸いです。宜しくお願いいたします。

【77148】Re:条件付き書式で色づけしたセルをカウ...
発言  独覚  - 15/5/27(水) 9:45 -

引用なし
パスワード
   ▼ゆか さん:
>この条件の結果赤になっている物だけをE41でカウントしたいのです。
手で赤く塗ったもの、他の条件で赤くなっているものはあるのでしょうか?
もしあった場合、それは数えないのでしょうか?

単純に赤いセルを判断するのであれば
対象セル.DisplayFormat.Interior.Color
が使えないでしょうか?

DisplayFormatプロパティは2010から追加された物ですが通常の表示形式・条件付き書式を
問わず、その時点でのセルの状態を返します。

【77154】Re:条件付き書式で色づけしたセルをカウ...
質問  ゆか  - 15/5/28(木) 9:34 -

引用なし
パスワード
   ▼独覚 さん:

返信下さり、ありがとうございます。

現状では、他で赤になっているセルはありません。

.DisplayFormat.Interior.Colorなんですが、
インターネットで調べてもいまいちよくわかりませんでした…。

是非ご教授いただければありがたいです。
宜しくお願いいたします。

【77155】Re:条件付き書式で色づけしたセルをカウ...
回答  独覚  - 15/5/28(木) 10:51 -

引用なし
パスワード
   ▼ゆか さん:

.Colorではなく.ColorIndexですが。

Sub R_COUNT()
  Dim W_Range   As Range
  Dim C_Cnt    As Integer
  Dim O_Range   As Range
  
  With Worksheets("Sheet1")
    C_Cnt = 0
    .Columns("AH").Clear
    Set O_Range = .Range("AH1")
  
    For Each W_Range In .Range("E6:K11")
      If W_Range.DisplayFormat.Interior.ColorIndex = 3 Then
        C_Cnt = C_Cnt + 1
        O_Range.Value = W_Range.Value
        Set O_Range = O_Range.Offset(1)
      End If
    Next
    .Range("E41").Value = C_Cnt
  End With
End Sub

上記マクロを標準モジュールに入れて実行してみてください。
E41セルに赤いセルの個数、AH列に赤いセルの内容が表示されます。

【77156】Re:条件付き書式で色づけしたセルをカウ...
発言  独覚  - 15/5/28(木) 10:59 -

引用なし
パスワード
   ▼ゆか さん:
ちなみに
>      If W_Range.DisplayFormat.Interior.ColorIndex = 3 Then
の「DisplayFormat」を外して

>      If W_Range.Interior.ColorIndex = 3 Then
とすると条件付き書式で赤くなっているものは無視して手で赤くしたものだけ数えます。

【77161】Re:条件付き書式で色づけしたセルをカウ...
お礼  ゆか  - 15/5/28(木) 20:49 -

引用なし
パスワード
   独覚さん

ありがとうございました!
お蔭様で、目指していたカレンダーを作ることが出来ました!
本当にありがとうございます。
また今度何か困った際には、是非宜しくお願いいたします!
本当に有難うございました!

977 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free