Excel VBA質問箱 IV

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

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


6020 / 13646 ツリー ←次へ | 前へ→

【47616】シフト表 タップ 07/3/16(金) 13:51 質問[未読]
【47619】Re:シフト表 ウッシ 07/3/16(金) 16:02 発言[未読]
【47622】Re:シフト表 りん@とおりすがり 07/3/16(金) 16:39 発言[未読]
【47640】Re:シフト表 タップ 07/3/17(土) 2:50 お礼[未読]
【47639】Re:シフト表 タップ 07/3/17(土) 2:45 お礼[未読]
【47641】Re:シフト表 りん 07/3/17(土) 4:56 回答[未読]
【47643】Re:シフト表 タップ 07/3/17(土) 10:23 お礼[未読]

【47616】シフト表
質問  タップ  - 07/3/16(金) 13:51 -

引用なし
パスワード
   従業員3人×1ヶ月の色塗りシフト表を作りたいのですが、初心者なのでお手上げ状態です… どなたかご指導お願いします。

・営業時間⇒9:00〜21:00
・人によって色を変えたい
・出勤時間と退勤時間を入力するとグラフコーナーに勤務時間の分だけ色が付く
・職場に近い従業員は1日2回出勤することもあるので、出勤-退勤-出勤-退勤 のように、入力欄が2セットある

  A  B  C  D  E  F  G  H  I  J  K  L
1                       (グラフコーナー)
2日付 曜日 氏名 出勤 退勤 出勤 退勤 備考 日付 曜日
3                              9時 10時
4 3/1  木  鈴木 9:00 13:00
5       田中 10:00 13:00 17:00 21:00
6      吉田 13:00 21:00
7 3/2  金  鈴木
8      田中 9:00 15:00
9      吉田 15:00 21:00
10 3/3  土  鈴木
11       田中
12      吉田
13

こんな感じにしたいんです…

【47619】Re:シフト表
発言  ウッシ  - 07/3/16(金) 16:02 -

引用なし
パスワード
   こんにちは

詳しくは無いのですが条件付書式で出来そうな気もします。

VBAでなら、

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

が使えます。

【47622】Re:シフト表
発言  りん@とおりすがり  - 07/3/16(金) 16:39 -

引用なし
パスワード
   こんにちわ。

>詳しくは無いのですが条件付書式で出来そうな気もします。
条件付書式での方法です。

・始終時刻の組み合わせがDEとFG
・9時の表示位置がK列
・データが4行目から始まる

として。

K4:W(データのある行数)を選択し、
書式→条件付書式
 数式が
↓以下の式をコピペ
=OR(AND((COLUMN()-2)>=HOUR($D4),(COLUMN()-2)<=HOUR($E4)),AND((COLUMN()-2)>=HOUR($F4),(COLUMN()-2)<=HOUR($G4)))

書式を好きな色で塗るようにすると、該当の位置がその色に変わります。

【47639】Re:シフト表
お礼  タップ  - 07/3/17(土) 2:45 -

引用なし
パスワード
   ▼りん@とおりすがり さん:

ご親切にありがとうございました。
早速、条件付書式で作ってみました。
手順に従って入力したところ、見事に色分けグラフが作成できました!
ありがとうございました!

でも、ひとつだけ修正したいところがあるんです。

3/1(木)の鈴木さんの勤務時間は4時間なので、グラフも4セル分の塗りつぶしにしたいのですが、5セル分塗りつぶされてしまうんです。
ど素人なのでどこをいじればいいのか分かりません…
どうぞよろしくお願い致します。


 A  B  C  D  E  F  G  H  I  J  K  L  
1                       (グラフコーナー)
2日付 曜日 氏名 出勤 退勤 出勤 退勤 備考 日付 曜日
3                              9時 10時
4 3/1  木  鈴木 9:00 13:00
5       田中 10:00 13:00 17:00 21:00
6      吉田 13:00 21:00
7 3/2  金  鈴木
8      田中 9:00 15:00
9      吉田 15:00 21:00
10 3/3  土  鈴木
11       田中
12      吉田
13

【47640】Re:シフト表
お礼  タップ  - 07/3/17(土) 2:50 -

引用なし
パスワード
   ▼ウッシ さん:

ありがとうございました。

ど素人の私にはまだVBAは難しかったようで、条件付書式で頑張ってみます。

またよろしくお願い致します。

【47641】Re:シフト表
回答  りん E-MAIL  - 07/3/17(土) 4:56 -

引用なし
パスワード
   タップ さん、こんばんわ。

>3/1(木)の鈴木さんの勤務時間は4時間なので、グラフも4セル分の塗りつぶしにしたいのですが、5セル分塗りつぶされてしまうんです。

すみません・・・終了時刻は塗っちゃだめですよね。
というわけで、
式を
=OR(AND((COLUMN()-2)>=HOUR($D4),(COLUMN()-2)<HOUR($E4)),AND((COLUMN()-2)>=HOUR($F4),(COLUMN()-2)<HOUR($G4)))

終了時刻(HOUR($E4)、HOUR($G4))との比較を <= ではなくて < に変えてください。

【47643】Re:シフト表
お礼  タップ  - 07/3/17(土) 10:23 -

引用なし
パスワード
   ▼りん さん おはようございます。

すごい!
解決しました!

いろいろとありがとうございました。
今後もよろしくお願い致します。

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