| 
    
     |  | 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
 
 |  |