[[20170927125223]] 『EXCEL2013作成カレンダー。赤文字の入ったセル数ax(70の手習い) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『EXCEL2013作成カレンダー。赤文字の入ったセル数をカウントしたい.』(70の手習い)

 社員勤務のシフト表カレンダーを、EXCEL2013で作ろうとしています(BOX型)。
作ったカレンダーは、給与が20日締めですから、毎月21日始まり、20日終了の形式です。
祝祭日と日曜日の日にちは、赤文字で表示してあります。ここまでの作業は、「条件付き書式」を用いました。

 次に、月間総労働時間を算出するために、該当のセル範囲(G20:S20)の中から、労働時間から除外すべき日数=【『赤文字で表示した祝祭日と日曜日』が入った(セルの数)】を、カウントし、例えば、セルE26に、=○○(G20:S20,3)の形式を用いて表示させたいと思います。VBAを使いたいのですがうまく作れません。ご教授下さい。

 《整理》
1.セル範囲(G20:S20)中の月間総労働時間を算出したい。
2.労働時間から除外すべき祝祭日と日曜日は、赤文字で表記させている。
3.この赤文字の入ったセル数をカウントしたい。
4.表示形式は、=○○(G20:S20,3)
5.VBAを使いたい。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 >4.表示形式は、=○○(G20:S20,3) 

 1.VBAを使いたいと言っても、結局、セルには数式を入れるんですよね?

 なら、初めから数式だけで出来ると思うんですけど、
 ※この条件付き書式の条件が明示されればの話ですが・・
    ↓
 >祝祭日と日曜日の日にちは、赤文字で表示してあります。
 >ここまでの作業は、「条件付き書式」を用いました

 2.条件付き書式の条件成就状況を調べるのは結構大変ですから、
 多分、条件付き書式の条件から逆算してVBA作ることになるので、
 詰まんないコードになる公算が高いです。

 (つまり、本当に色を調べるコードにする訳じゃない)

(半平太) 2017/09/27(水) 14:00


 2010以降なのでユーザー定義関数にせず、VBAだけで色を付けるならばDisplayFormatプロパティが使えないか?
(ねむねむ) 2017/09/27(水) 14:29

 訂正
 >色を付けるならば
     ↓
 >色を判断するならば
(ねむねむ) 2017/09/27(水) 14:35

めんどくさいから
NETWORKDAYS  のほうが楽かも

G20:S20   13セル数  21-20出勤日の出勤時間どの様に入れるのでしょうか

フォーマットに無理がありそうですが

(++) 2017/09/27(水) 14:48


受け売りなので詳しくは分かってませんが、

Sub Chr_Color()

 Dim n As Long
 Dim T_Cell As Range
 n = 0
 For Each T_Cell In ActiveSheet.UsedRange
 If T_Cell.Font.ColorIndex = 3 Then n = n + 1
 Next

 Range("A1") = n

End Sub

これで、A1セルにFont.ColorIndexが3(赤色)の数を表示するようです。
色が違う場合はこの3を変更してください。

(オーパスワン) 2017/09/29(金) 11:21


 >祝祭日と日曜日の日にちは、赤文字で表示してあります。ここまでの作業は、「条件付き書式」を用いました。 
 とフォントの色を条件付き書式でおこなっているならば
 T_Cell.Font.ColorIndex
 を
 T_Cell.DisplayFormat.Font.ColorIndex
 に。
(ねむねむ) 2017/09/29(金) 11:33

こんな感じになるのでしょうか。

Sub Chr_Color()

 Dim n As Long
 Dim T_Cell As Range

 n = 0
 For Each T_Cell In ActiveSheet.Range("D20", "S20")
 If T_Cell.DisplayFormat.Font.ColorIndex = 3 Then n = n + 1
 Next

 Range("E26") = n

End Sub

(オーパスワン) 2017/09/29(金) 17:25


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.