教えて!しごとの先生
教えて!しごとの先生
  • 解決済み

Excel2010マクロで週ごとに当番を割り振りたいと以下のマクロを組みました。8行目まではうまくいったものの、21行目…

Excel2010マクロで週ごとに当番を割り振りたいと以下のマクロを組みました。8行目まではうまくいったものの、21行目まではエラーも出ないけれども仕事もしないで画面上何も変化がありません。どうしたらよいのでしょうか。21行目ではブロックのコピーはできないというエラーが出ます。 シートは列がA日B曜C祝日欄D行事E~Jに6グループが入っています。 1 Sub 当番を割り振る() 2 Dim dx '曜日列の行1 3 Dim dy '曜日列の行2 4 Dim dz '曜日列の行3 5 Dim c '週フラグ 6 c = 0 7 For dx = 1 To 31 8 Range("O2:T2").Copy Range("E" & (dx + 6) & ":J" & (dx + 6)) '-----O2:T2割振りを貼り付ける 9 Next dx 10 For dy = 1 To 31 -----'2週目の月曜日以降だったら仕事の割振りをローテーションして次の月曜日までコピーする 11 If Weekday(Range("B" & (dy + 6)).Value) = 2 And c > 1 Then '-----月曜日で第2週以降だったら 12 Range("E" & (dy + 6)).Copy '-----1Gをクリップボードへ 13 Range("F" & (dy + 6) & ":J" & (dy + 6)).Copy Range("E" & (dy + 6) & ":I" & (dy + 6)) '-----2~6Gを1~5Gへ 14 ActiveSheet.Paste Destination:=Range("J" & (dy + 6)) '-----クリップボードを6Gへ 15 Range("E" & (dy + 6) & ":J" & (dy + 6)).Copy Range("E" & (dy + 7) & ":J" & (dy + 15)) '-----次週の月曜までコピー 16 c = c + 1 17 End If 18 Next dy 19 For dz = 1 To 38 '-----仕事のない土日、祝日の割振りを消す 欄外にコピーした分も消す 20 If Weekday(Range("B" & (dz + 6)).Value) = 0 Or Range("B" & (dz + 6)) = "" Then '-----土曜日だったら 21 Range("E" & (dz + 6) & ":J" & (dz + 7)).Clear '-----土日の割振りを消す 22 If Range("C" & (dz + 6)) <> "" Then Range("E" & (dz + 6) & ":J" & (dz + 6)).Clear '-----祝日だったら割り振りを消す 23 End If 24 Next dz 25 End Sub

続きを読む

96閲覧

回答(1件)

  • ベストアンサー

    ざっと見ましたが、このコードだとcはずっと0のままです。 c = c + 1 を実行するには If Weekday(Range("B" & (dy + 6)).Value) = 2 And c > 1 が満たされていなくてはなりませんが、 cが0のままなのでカウントアップされません。 コードだけで仕様の説明がないのでよくわかりませんが、第2週の定義はどう考えているのでしょうか。

< 自分のペースで、シフト自由に働ける >

パート・アルバイト(東京都)

この条件の求人をもっと見る

< 平日勤務で週末はリフレッシュしたい人におすすめ >

正社員×土日祝休み(東京都)

求人の検索結果を見る

もっと見る

この質問と関連する質問

    情報収集に関する質問をキーワードで探す

    < いつもと違うしごとも見てみませんか? >

    覆面調査に関する求人(東京都)

    この条件の求人をもっと見る

    Q&A閲覧数ランキング

    カテゴリ: この仕事教えて

    転職エージェント求人数ランキング

    • 1

      続きを見る

    • 2

      続きを見る

    • 3

      続きを見る

    あわせて読みたい
    スタンバイプラスロゴ

    他の質問を探す

    答えが見つからない場合は、質問してみよう!

    Yahoo!知恵袋で質問をする

    ※Yahoo! JAPAN IDが必要です

    スタンバイ アプリでカンタン あなたにあった仕事見つかる