excelのvbaに関しての質問です。
以下は、A列の要素を4つに適当に分け、B列〜E列に表示するプログラムです。
このプログラムを、
・B10〜Cells(Rows.Count, 1).End(xlUp).Rowの範囲の要素を
・B10〜B17までの要素をそれぞれ8つに振り分け、次にB18〜B25までの要素をそれぞれ8つに振り分け…
・C列〜J列に表示する
という形にしたいのですが、どのようにすればよいでしょうか。
また、do loopの処理がよくわからないです。
よろしくお願いします。
Sub sample()
Dim Total As Integer
Dim TmCnt As Integer
Dim Data1 As Variant
Dim Data2() As String
Dim i As Integer, j As Integer, k As Integer
Total = (Rows.Count, 1).End(xlUp).Row
TmCnt = 4
Data1 = Range("A1:A" & Total).Value
ReDim Data2(1 To Total)
Randomize
For i = Total To 1 Step -1
j = Int(Rnd * i) + 1
Data2(i) = Data1(j, 1)
Data1(j, 1) = Data1(i, 1)
Next i
i = 1
Do
For j = 1 To TmCnt
k = k + 1
Cells(i, j + 1).Value = Data2(k)
If k = Total Then Exit Sub
Next j
i = i + 1
Loop
End Sub
回答1件
あなたの回答
tips
プレビュー