728x90
엑셀스쿨 VBA 로또번호(간단) |
로또번호(초간단) |
A:C 열을 숨기기 1:9 행을 숨기기 |
|
E11 셀에 아래 그림과 같이 입력 =rand() :: 랜드 괄호 열고, 괄호 닫고 |
E11 셀 오른쪽 아래의 검정십자 모양에서 클릭하여 한 칸 아래로 드래그 한다. |
|
두 칸에 걸쳐 0과 1사이의 무작위 값이 나온다. |
D11:D12 두 개의 셀에 1,2를 각각 입력하고 D11:E12 를 그림과 같이 선택하고 검정 십자가를 드래그 하여 45까지 나오도록 한다. |
|
F11셀에 수식입력 =Rank(E11,$E$11:$E$55) $(달러) 표시는 단축키 F4를 이용한다. |
|
행번호가 적혀 있는 왼쪽을 이용하여 17~55행까지 선택하고 마우스 오른쪽 버튼의 메뉴에서 숨기기한다. 위의 여섯개 수를 로또 번호로 사용할 것이다. |
|
F9 키를 여러번 눌러 값이 변하는 것을 확인 | ||
H10 셀에 구간(가운데 정렬) H11 셀에 1 을 입력 I11 셀에 10을 입력 H12 셀에 =H11+10 을 입력~!! |
검정 십자모양을 이용해 드래그 하여 아래 그림과 같이 채운다. |
|
50 숫자칸에 45를 입력한다 |
원하는 개수라고 적고 1,2,1,1,1이라고 입력한다. |
J11:J15 까지 1,2,1,1,1를 입력하고 J11:J15 까지 선택한다. 셀서식(단축키 Ctrl + 1)을 열어 사용자 지정 (형식)에서 "G/표준 개"라고 입력 확인 |
|
Ctrl 키를 이용하여 D,F,H,I 열을 클릭한 후 그림과 같이 검정 세로 양쪽화살표 모양의 마우스 아이콘이 될 때 더블 클릭하여 열너비를 조정한다. |
|
G 열을 클릭 수 마우스 우클릭 - 열너비 : 2 입력 |
|
K10 셀에 세기 K11 셀에 다음 수식 입력 =COUNTIFS($F$11:$F$16,">="&H11,$F$11:$F$16,"<="&I11) |
검정십자 모양에서 더블클릭하여 15행까지 수식입력 |
|
몇 개라는 셀 서식 적용 힌트 Ctrl + 1 |
L11 셀에 다음 수식 입력 =J11=K11 이후 검정십자모양을 이용하여 15행까지 수식 적용 |
L16에 노랑 |
L16 셀에 다음 수식을 입력 =COUNTIF(L11:L15,1=1) 퀴즈 1=1 의 의미는 뭘까? |
L16 셀의 2의 의미는? |
F9 키를 여러번 눌러 L16 셀의 값이 5가 되도록 여러번 눌러본다. |
개발도구의 매크로 기록 | |
|
매크로 이름 Search_Five |
F9 키를 한 번 누르고 매크로 기록중지 클릭 |
매크로 클릭 써치파이브 편집 클릭 |
|
기록된 매크로의 Calculate 라는 글자확인 (새로고침 F9와 같은 기능) |
모듈 이름 변경 Module1을 Search_Module 으로 변경 |
매크로에 소문자로 msgbox range("L16") 을 입력 |
자동으로 대문자로 변경 되는 것을 확인 |
마우스 커서를 sub 와 end sub 사이 어딘가에 클릭한다. |
F8 키를 눌러 한 줄 씩 실행한다. 또 F8을 누른다. |
메세지 박스를 통해 L16의 값 5가 표시 확인 클릭 |
Calculate를 통해 값이 5에서 0으로 바뀌었다. 한 번 더 F8을 눌러 End sub 한다. |
메세지 박스의 첫 글자 M 앞에 커서를 두고 TAB 키를 눌러 들여쓰기한다. |
다음 내용으로 수정한다. Sub Search_Five() For i = 1 To 10 MsgBox Range("L16") Calculate Next End Sub |
F8 키를 눌러 자꾸 메세지 박스가 팝업되는 불편 함이 있다. 아래 그림과 같이 정지 버튼을 누른다. |
메세지 박스의 첫글자 M 앞에 '(아포스트로피)를 붙여 주석처리한다. (초록색으로 변함) |
다시 F8을 눌러 한 줄 씩 실행하여 10번 반복하는 것을 확인한다. |
다섯 조건을 만족하는 5를 찾기가 쉽지 않다. (때론 쉬울 수도 있다. ㅡㅡ;;;) |
다음으로 수정한다. Sub Search_Five() For i = 1 To 10 If Range("L16") = 3 Then Exit For 'MsgBox Range("L16") Calculate Next End Sub |
F8 키를 눌러 3이 되면 for 문을 exit 하는 것을 확인 |
새모듈을 하나 적는다. Sub Search_Five() For i = 1 To 10 If Range("L16") = 3 Then Exit For 'MsgBox Range("L16") Calculate Next End Sub Sub Mod_Reset() Calculate End Sub |
VBA 창을 닫고 개발도구 - 단추를 클릭 적당한 위치에 드래그하여 적당한 크기로 만든다. (Alt 키를 누르고 드래그하면 셀 칸에 크기를 맞출 수 있다.) |
Mod_Reset를 선택 - 확인 |
텍스트 편집 | Reset |
|
노랑칸에 숫자가 바뀌는 것을 확인 |
텍스트 편집 | 행운번호 |
|
매크로 지정 | Search_Five 선택 확인 |
|
리셋과 행운 버튼을 번갈아 누르며 확인한다. |
비쥬얼 베이직 버튼 클릭 |
3을 5로 수정하고 리셋버튼과 행운버튼을 다시 번갈아가며 클릭해본다. |
5가 아니어도 멈추는 것을 확인 왜 그럴까? |
해당 매크로(모듈)을 F8 키를 눌러 실행해보면 10번 만에 5를 만족하지 못한 경우 그냥 매크로가 끝나기 때문임을 알 수 있다. 10 을 1000으로 고쳐 실행하면 거의 5을 찾을 수 있음을 확인한다. |
시도 몇 번만에 5를 찾는지 알 수 있을까? |
다음과 같이 수정한다. Sub Search_Five() For i = 1 To 1000 If Range("L16") = 5 Then MsgBox i & "번 시도하여 찾은 행운번호!!" Exit For Else Calculate End If Next End Sub |
행운번호를 누르기 전 항상 리셋을 누르기 귀찮다면..... |
모듈리셋 매크로 구문을 아래와 같이 서치파이브 상단에 넣는다. Sub Search_Five() Mod_Reset For i = 1 To 1000 If Range("L16") = 5 Then MsgBox i & "번 시도하여 찾은 행운번호!!" Exit For Else Calculate End If Next End Sub |
728x90
'■ Excel > ㅡExcel Class' 카테고리의 다른 글
돌줍기게임(2인간단) (0) | 2022.08.23 |
---|---|
엑셀코딩스쿨 정렬알고리즘(간단) (0) | 2022.05.20 |
엑셀Class- VBA 구구단표 (0) | 2022.05.04 |
엑셀Class- VBA 매달1장 달력 만들기(작성중) (0) | 2022.04.24 |
엑셀 수업 - 유클리드 알고리즘 #27- (0) | 2020.09.02 |