VBA 指定の値があるセルを除いたセル範囲で●を指定数、ランダムに入れたい

ここに実現したいことを箇条書きで書いてください。

前提

VBAを用いてシフトのランダム作成処理を考えています。
C6:I6の範囲でランダムに出勤者を指定します。
(C5:I5)には従業員名が書いています。
C6:I6の範囲で希望休とセルに記載があればランダム作成処理から除外します。
除外した中からランダムに指定人数に●をつけるのが目標。

最終目標はそれぞれの日にちに指定数ごとの出勤者を
ランダムに指定することです。

現時点では希望休関係なくランダムに指定個数●を入れる処理までは
下記キャプチャの処理で普通に動いています。
イメージ説明

If文を用いて除外するのか、RangeではなくCellを使用して除外など
おすすめできる記述を教えていただけないでしょうか。

該当のソースコード

VBA

1Sub ランダムシフト() 2 Dim セル As Range 3 Dim 指定個数 As Integer 4 5 Set セル = Range("C6 :I6") 6 セル.ClearContents 7 指定個数 = Range("O6").Value 8 9 Do 10 セル.Cells(Int(セル.Count * Rnd) + 1).Value = "●" 11 Loop Until Application.CountA(セル) > 指定個数 - 1 12 Set セル = Nothing 13 14End Sub

コメントを投稿

0 コメント