|
vba初心者です。
趣味でロト6の抽選マクロを作ろうとしています。
見よう見まねで以下のコードを作って動かしたのですが、変数X=8 I=2の時にマクロが固まってしまいます。
どのようにコード修正をすれば正常に動くのか、調べたのですがわからずここに質問をさせていただきました。
お手数ですが、教えていただけると助かります。
Sub 数字を6個抽出()
Dim i As Long, myNum As Long, X As Long
Dim myFlag(1 To 43) As Boolean
For X = 1 To 20 'X=8 I=2 でエラー ??
'乱数系列を初期化
Randomize
For i = 1 To 6
Do
myNum = Int(43 * Rnd + 1)
Loop Until myFlag(myNum) = False
Cells(X, i).Value = myNum
myFlag(myNum) = True
Next i
'水平方向への並べ替え
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("A" & X), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("A" & X & ":F" & X)
.Header = xlNo
.MatchCase = False
.Orientation = xlSortRows
.SortMethod = xlPinYin
.Apply
End With
Next X
End Sub
|
|