
当日の出勤者のみ表示したいと考えています。
2枚目の図は、私が理想とするイメージ図です。
●出勤者のみ、詰めて表示される。
●出勤者の出勤、退勤、休憩も同時に表示される
今までは、関数で出勤者を抽出していました。
そのため、作業シートを2枚使用しています。
作業シートを使用せずにVBAで出来るようになれば理想通りです。
皆様の知恵をお借りしたいと考えています。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
ちょっと求められている動きが見えなくてアドバイスが難しいです。
やりたいこととしては、1枚目のイメージで入力されているデータをもとに2枚目のイメージの状態を作り出したい、ということでよかったですか?
そしてその際、2枚目の状態が1枚目のデータシートとは別シート(2枚目のシート)に出力されるのはいやだ、ということでしょうか?
投稿2016/05/25 05:08
総合スコア3020
0
ベストアンサー
基本的な部分のみVBAで書いてみました。
Dim src_ws As Worksheet Dim dst_ws As Worksheet Dim src_row As Long Dim dst_row As Long Dim dd As Long Set src_ws = Worksheets("Sheet1") Set dst_ws = Worksheets("Sheet2") src_row = 2 dst_row = 3 dd = 1 Do ' 名前がなければ終了 If src_ws.Cells(src_row, 1) = "" Then Exit Do ' 出勤が登録されているか If src_ws.Cells(src_row + 1, dd + 2) <> "" Then dst_ws.Cells(dst_row, 1) = src_ws.Cells(src_row, 1) ' 名前 src_ws.Cells(src_row + 1, dd + 2).Copy dst_ws.Cells(dst_row, 2) ' 出勤 src_ws.Cells(src_row + 2, dd + 2).Copy dst_ws.Cells(dst_row, 3) ' 退勤 src_ws.Cells(src_row + 3, dd + 2).Copy dst_ws.Cells(dst_row, 4) ' 休憩 dst_row = dst_row + 1 End If src_row = src_row + 4 Loop
このコードでは変数ddの値を対象の日付に見立てています。
dd = 2 にすれば、2日が対象になります。
これをベースに関数化したり、装飾を加えたりすれば、それなりになるかなと思います。
投稿2016/05/25 04:22
総合スコア17000
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

2016/05/25 06:36
2016/05/25 07:01

退会済みユーザー
2016/05/25 07:37

0
シート一枚でというのはデータのみを記述した表無しでという意味ですか?
例えば、上のシフト表も、下の理想の表も同じシートに書いてしまえばシートは1枚で済みますが、そういうことでは無いのですね?
データ無しだとVBAを使ってもどうしようも無いと思います。
VBAコード中に直接データを記入するなら可能ですが
そんなことをする位なら、データシートを別途用意したほうがましです。
投稿2016/05/25 02:55
編集2016/05/25 02:58総合スコア2068
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2016/05/25 02:59

0
VBA使わなくてもsumif関数使えば集計できます。
またはピポットテーブルも有効です。
あと、日付は項目として追加しとくとベターです。
投稿2016/05/25 02:39
編集2016/05/25 02:41総合スコア2884
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2016/05/25 02:45

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/05/25 05:16