• 締切済み

エクセルでシフト表作成をしたい

30人規模のシフト表作成をエクセルでやっています。 月間シフトを作成して、日別シフトも作成しているんですが、これを同時にできないかな、という相談です。 例えば、月間シフトで10月14日にAさんが7時から16時まで、Bさんが10時から19時までのシフトだとすると、日別シフト表の方にAさんとBさんの勤務時間を棒線などで表示させて、各時間帯で人が多いとか少ないとかを視覚的に把握したいのです。 こういった事はエクセルVBAで可能でしょうか。 エクセルでなくても、こういうソフトがあるとかでも教えて頂けたら嬉しいですが、自宅PCだけでなく職場のPCでも使いたいので、可能ならVBAで自作をしたいです。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

こういうのは、特徴を捉えた模擬実例を挙げて質問するものだ。 月間シフト表 日別シフト表 の様式を書かないで質問するのはおかしい。 ーー 課題は、ちょっとした要求者の好みでされていることが、関数やプログラムでの処理に、障害や不可能になる場合がある。その怖さを質問者は知らない・多分経験が少ないから、そんなことを言っておられるのだ。 それに回答者に、こんなのご希望ですか、こんなのどうですか、など手数を取らせない配慮がほしい。 ーー 関数でも複雑だが、やっと作れるように想像する。 似た質問があったように思う。 ーー VBAの場合、関数より、一般に融通性は在るし、出来るだろう。 しかし中級以上のスキルが要る。 ーーー 図示的なことを考える場合下記(モデル例)が参考になろう。 A3:B3に入れる。 12:00 16:00 12時から16時までの意味。必ず24時間制表示にすること。 C1からK1までに9:00 10:00 11:00・・17:00 と入れる(時刻の区切り) C3:K3を範囲指定して、 書式 条件付書式 式が 式に =AND($A3<C1,$B3>=C1) 書式にセルパターン色を、例えば緑色などに設定 OK これでF列からJ列までのセルが緑になる。 ーー これはA列、B列の時間変化に対し即時反応性がある。 (VBAでは、普通のやり方だと、再度プログラムの実行しなおしになる) これを使うなら、縦に多人数の場合どうなるか。 A列に氏名を入れるとどうなるか。 全従業員のの終わりは何時か。始まり時間は。 などを変えて、旨くやれるか まず練習してみてコツを飲み込むこと。 ーー >エクセルVBAで可能でしょうか。 質問者はVBAの経験あるのか。なんとなく難しそうで、プログラムがいるかな、と思ったのか。 VBAは始めるのは(短期間で)、そんなに易しいものではない。

回答No.2

説明が言葉なので理解するのは難しいと思うので、以下の手順で一度作ってみてください。 9時~19時までの時間で作りました。 B3に名前、C1とD1を結合し日付、C2に出勤、D2に退勤、C3に出勤時間、D3に退勤時間、A11に日付、B11に名前、C10~M10に9~19をそれぞれ入力、C11に=IF(AND($C3<=C$10,$D3>C$10),"●","") 書式の条件付き書式から、●を太い横棒や塗りつぶしなどに変えることも出来ます。 質問の内容に沿ったものでしょうか?ご参考になれば幸いです。

noname#110201
noname#110201
回答No.1

>こういうソフトがあるとかでも MSプロジェクト。 プロジェクト管理のソフトですが、ご質問にあるようなリソースの管理も、プロジェクト管理の一部で、MSプロジェクトの十八番です。 マイクロソフトのサイトで個々の製品のページにに入るのがなぜかとても面倒なので(私だけか?)、ウィキへのリンクを貼っておきます。あるいはここから、MSのサイトに入れるかもしれません。 http://ja.wikipedia.org/wiki/Microsoft_Project 同様のプロジェクト管理ソフトでフリーソフトもあるみたいです。「みたい」というのは、使ったことがないからです。でも、まぁご参考に。 http://gigazine.net/index.php?/news/comments/20090107_openproj/ ガントチャートを作るエクセルのアドイン(というのかな?)も、たくさんあるようです。あるのを知っているだけで、使ったことはないので、これもご参考まで。 http://mizhiro.mitelog.jp/myproject/2006/12/excel_7024.html http://www.forest.impress.co.jp/article/2008/08/11/excelprokoutei.html http://www.vector.co.jp/soft/win95/business/se353330.html http://www.vector.co.jp/soft/win95/business/se282986.html http://www.vector.co.jp/soft/winnt/business/se477797.html?site=n http://www.vector.co.jp/soft/win95/personal/se336523.html?site=n 最後に、ご質問の最も重要なポイントですが、VBAで自作も当然できます。 思いつきですが、セルひとつを1時間なり、30分なりの稼動最小単位にし、入力したシフトから対応するセルに色を塗るプロシージャを作れば、いいわけです。

関連するQ&A