-
난수 생성기(로또)VB(A) 2017. 6. 24. 01:04
http://cafe.naver.com/excelmaster/140186
흔한 난수 생성기(로또)
J1에 0~45 의 숫자를 입력하고 버튼을 누른다.
1. 0을 입력하면 모든 셀에 난수가 출력.
2. 1~45를 입력하면 B열에는 해당 숫자가 고정 출연
Option ExplicitOption Base 1Sub Macro()Dim IncludeNum As IntegerDim v(5, 7) As IntegerDim i As IntegerDim j As IntegerDim tmp As Integer'기존자료 삭제 및 포함되어야할 숫자 선언'J1이 0이면 모든 칸이 난수가 출력됩니다.Range("B1:H5").ClearContentsIncludeNum = Range("J1").Value2For i = 1 To 5For j = 1 To 7RandomizeDo'J1에 숫자가 있으면 첫줄은 J1If j = 1 ThenIf IncludeNum > 0 Thenv(i, j) = IncludeNumExit DoEnd IfEnd If'중복되지 않는 난수 생성tmp = Int(46 * Rnd)If IsUnique(tmp, v) Thenv(i, j) = tmpExit DoEnd IfLoopNext jNext iRange("B1:H5").Value2 = vEnd SubFunction IsUnique(Num As Integer, Data As Variant) As Boolean'중복된 숫자 유무를 판단하는 사용자정의 함수입니다.Dim iFind As IntegerDim i As IntegerOn Error Resume NextWith ApplicationFor i = 1 To 7iFind = .Match(Num, .Index(Data, , i), 0)If iFind > 0 ThenIsUnique = FalseExit FunctionEnd IfNext iEnd WithIsUnique = TrueEnd Functioncs 'VB(A)' 카테고리의 다른 글
[월보용] 데이터 합치기 (0) 2017.09.01 월보 취합 서식 (0) 2017.08.29 [VB.Net] 파일 생성일자로 폴더 생성 후 파일이동 (0) 2017.06.04 [VB.Net] 화면보호기 (0) 2017.06.03 지역별로 시트 생성하여 나누기 (0) 2017.05.16 댓글