'목록하단 광고 치환자(withSeok)
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

+ Recent posts