[VB 6.0]간단한 문제 프로그램 만들기.(아주~ 기초부터 시작)

Posted by Myoa™
2009. 3. 21. 17:12 강의
본 블로그는 클리어타입에 최적화 되있습니다. 글씨가 흐리게 보이면 여기를 눌러 패치하세요(1차수정)



너무길다고 바로 <뒤로> 누르시지마시구요 ㅠ_ㅠ.. 하나하나씩
해석 하면서 배워봅시다 >_<

P.S 참고로 반복되는것이 많을뿐입니다..어려움은 없습니다.

P.S2 타이핑 하기 귀찮다고 무단 복사하지말고, 아래 파일을 다운받아서사용하세요 ㅠ_ㅠ..



Form1 소스


Option Explicit
Dim Aox1 As String
Dim Aox2 As String
Dim Aox3 As String
Dim Aox4 As String
Dim Aox5 As String
하... 이렇게 길게말고 Type 형이라고 짧게쓰는 방법이 있었는데 말이죠.
아무튼 변수를 선언하는 방법입니다.

Dim 변수명 As 형식

자자. 변수명에는 여러제한이있는데요, 살펴봅시다.

1. 비주얼베이직 예약어 (vbOkOnly, MsgBox, If 같은 것들..)로는 사용할수없습니다.
2. 영문자,한글,숫자,_ 로 구성되며, 첫글자에는 반드시 영문자,또는 한글만가능합니다.
(숫자불가능)
3. 255자를 초과할수없습니다!

Dim Box1 As String
Dim Box2 As String
Dim Box3 As String
Dim Box4 As String
Dim Box5 As String

그럼이제 해석해봐야겠죠?

Box1...Box5 라는 이름의 변수를 String의 형식으로 선언한다.
흠흠. String은 문자로만 쓸수있는 형식입니다. 숫자는 보통 Interger,Long 형식을
사용하죠.

Private Sub Command1_Click()
"X Q(곱셈 문제)" 라는 이름의 버튼 즉, 실제이름인 Command1 이라는 버튼을
클릭했을때,

Aox1 = InputBox("2x3x4x5=?" + vbCrLf + "숫자만 입력해주세요", "Q1", "00000")
If Aox1 = 120 Then
MsgBox "Q1을 맞혔습니다", 64, "Msg 1/5문제"
    Else
    MsgBox "Q1을 틀렸습니다", 16, "Msg 1/5문제"
    End If
InputBox는 다음과 같습니다.
이렇게 글을쓸수 있는 상자가 InputBox 인데요, 기본적인 사용법은

변수 = InputBox(내용, 창제목, 입력상자의 기본내용)

입니다.    해석은 다음 문에서 해보죠.

Aox2 = InputBox("40x27=?" + vbCrLf + "숫자만 입력해주세요", "Q2", "00000")
If Aox2 = 1080 Then
MsgBox "Q2을 맞혔습니다", 64, "Msg 2/5문제"
    Else
    MsgBox "Q2을 틀렸습니다", 16, "Msg 2/5문제"
    End If
우선 첫째 줄 입니다.

Aox2 라는 변수는 ("40x27=?" + vbCrLf + "숫자만 입력해주세요", "Q2", "00000")내용을 가진
InputBox 와 같다.

음... 그냥 직역이네요 -_-.. 하지만 의미는 비슷합니다.
결국 변수Aox2는 InputBox를 소환시킨다 이 얘기이죠.

Aox3 = InputBox("7x7x7=?" + vbCrLf + "숫자만 입력해주세요", "Q3", "00000")
If Aox3 = 343 Then
MsgBox "Q3을 맞혔습니다", 64, "Msg 3/5문제"
    Else
    MsgBox "Q3을 틀렸습니다", 16, "Msg 3/5문제"
    End If
If Aox3 = 343 Then       우오오 처음보는 구문이 나왔군영!
If문 입니다.   If문의 기본구성형식은 [괄호는 생략가능하단 의미입니다.]

If 조건문 Then
(Else If 조건문 Then)
(Else)
이벤트
End If



이네요. 어째 복잡한것같지만 복잡하지않습니다!...

복습만이 살길이겠죠 ㅇㅅㅇ..

그래서 결국 만약 Aox3이라는 변수의 값이  343 이라면
이란뜻입니다.

Aox4 = InputBox("28x31=?" + vbCrLf + "숫자만 입력해주세요", "Q4", "00000")
If Aox4 = 868 Then
MsgBox "Q4을 맞혔습니다", 64, "Msg 4/5문제"
    Else
    MsgBox "Q4을 틀렸습니다", 16, "Msg 4/5문제"
    End If
뭐 아무튼 다음 문장입니다.  [MsgBox "Q4을 맞혔습니다", 64, "Msg 4/5문제"]
또하나 MsgBox 라는것이 나왓군영.


MsgBox는 메시지를 출력하는 아주 기본적인 명령어(?) 입니다.

아주~아주~ 간단하게 사용하는방법은

MsgBox 내용

입니다만, 중요한것이 있습니다. 예문으로 확인해보죠.

MsgBox 안녕하세요?
라는문장은 절대 틀린것입니다.

MsgBox 10      은 맞습니다.

왜이럴까요?   문자(영어,한글등)를 출력할땐 반드시!
 " " (쌍따옴표)를 사용해주셔야합니다.

Ex) MsgBox "안녕하세요!"

더 자세한 사용법은 나중에..  이렇게 간단한것이 길게 설명될줄은 몰랏군요.=_=

Aox5 = InputBox("10x10x10x10=?" + vbCrLf + "숫자만 입력해주세요", "Q5 참 쉽죠~?", "00000")
If Aox5 = 10000 Then
MsgBox "Q5을 맞혔습니다", 64, "Msg 5/5문제"
    Else
    MsgBox "Q5을 틀렸습니다", 16, "Msg 5/5문제"
    End If
Else란? Else If란?

Else는 "그외의" 이구요, Else If "그것이 아니고 이 조건문일때"
라는 뜻입니다.

Else는 뒤에 조건식이 오지않지만, Else If 는 뒤에 조건식이 옵니다.

Ex)If Myoa <> Humnyang(??) Then
MsgBox "다르군영!"

Else If Myoa = 0 Then
MsgBox "0이라고 하는군요."

가 되겟군요.

MsgBox "수고하셨습니다.", , "Msg"
자자, MsgBox의 사용법은 알았는데  내용뒤에 ,,"Msg"가 있어요 ㅠ_ㅠ..

라고 생각하면 정상이겟군효.

음 자세한 구조를 말씀드리고싶지만, 저또한 앞구조 3가지만 기억하고있습니다.(기초땐
거의않써요.)

MsgBox 내용,나타날그림,창제목
입니다.

이봐이봐, 나타날그림이 뭐여?
"안녕하세요" 라는 문장 옆에 아이콘을 의미합니다.ㅇㅅㅇ..

  
End Sub
설명할 필요가없는듯 하군영..

Private Sub Command3_Click()
Box1 = InputBox("150+983=?" + vbCrLf + "숫자만 입력해주세요", "Q1", "00000")
If Box1 = 1133 Then
MsgBox "Q1을 맞혔습니다", 64, "Msg 1/5문제"
    Else
    MsgBox "Q1을 틀렸습니다", 16, "Msg 1/5문제"
    End If
의문 하나, 왜 일일이 End If 를 써주었는가?

음.. 설명하기가 곤역이군요.
그냥 이렇게만 기억하세요.

If가 오고, Else If 가 오고 또  Else If 가올땐 마지막에만 End If를 써주어도되지만,

If가 오고, Else가 왔다면, 새로운 If문을 해주어야 뭐 꼬이지가않겠죠..


Box2 = InputBox("256+512=?" + vbCrLf + "숫자만 입력해주세요", "Q2", "00000")
If Box2 = 768 Then
MsgBox "Q2을 맞혔습니다", 64, "Msg 2/5문제"
    Else
    MsgBox "Q2을 틀렸습니다", 16, "Msg 2/5문제"
    End If
뭐 나머지는 특별히 설명할게 없네요///

Box3 = InputBox("1236+532=?" + vbCrLf + "숫자만 입력해주세요", "Q3", "00000")
If Box3 = 1768 Then
MsgBox "Q3을 맞혔습니다", 64, "Msg 3/5문제"
    Else
    MsgBox "Q3을 틀렸습니다", 16, "Msg 3/5문제"
    End If
아, 하나가 빠졌네요.  >> + vbCrLf +  << 이것은 무엇인고?

음 사진을 다시올려드릴께요.


여기보시면

2x3x4x5=?                                             이렇게 두줄로 나뉘어져있지요~
숫자만 입력해주세요                               이렇게 개행해주는 명령어(?)가 + vbCrLf +
                                                           입니다~
Box4 = InputBox("1564+2836=?" + vbCrLf + "숫자만 입력해주세요", "Q4", "00000")
If Box4 = 4400 Then
MsgBox "Q4을 맞혔습니다", 64, "Msg 4/5문제"
    Else
    MsgBox "Q4을 틀렸습니다", 16, "Msg 4/5문제"
    End If
Box5 = InputBox("1234+5678+9012=?" + vbCrLf + "숫자만 입력해주세요", "Q5 참 쉽죠~?", "00000")
If Box5 = 15924 Then
MsgBox "Q5을 맞혔습니다", 64, "Msg 5/5문제"
    Else
    MsgBox "Q5을 틀렸습니다", 16, "Msg 5/5문제"
    End If
MsgBox "수고하셨습니다.", , "Msg"

   

End Sub

Private Sub Command4_Click()
Form2.Show
End Sub
Q. 오우워, Form2.Show  는 또 무엇인가요?
A. 폼2 를 띄워 주는 역활을 합니다.

따라서, Command4 버튼을 클릭하면 폼1에서, 폼1과 폼2의 창이되는겁니다.
(한마디로 폼2가 추가된다는겁니다.)

띄울 폼 또는,기타 여러가지.Show

라는 구조를 가지고있습니다.

Private Sub Command5_Click()
End
End Sub
가장~ 간단한것같네요.

Command5버튼을 눌르면,  End .  즉 모든것이 종료된다.
라는 정도의 개념입니다.


Private Sub Form_Load()
End Sub
음... Private Sub Form_Load()

폼을 불러올때, 일어나는일.     이라고 생각하면 편하겠네요.



자. 그러면 이제 Form2 소스입니다.

Form2 소스



Private Sub Command1_Click()
Unload Me
End Sub
Command1 버튼은 Ok버튼입니다.

따라서 Command1버튼을 누르면,   Unload Me
음.. Unload Me는    자기자신. 즉 자신의폼을 종료시킨다, 메모리에서 값을제거한다.

입니다.


'익스플로러 새창에 띄우기 (기초 깔기) /시작
Private Sub NewExplorer(URL As String)
   Dim ie As Object
   Set ie = CreateObject("InternetExplorer.Application")
   ie.Visible = True
   ie.Navigate URL
   Set ie = Nothing
End Sub
'익스플로러 새창에 띄우기 (기초 깔기) /끝
이거.. 흠냥씨가 알려준 소스인데요, 뭐라 해석해야 될지 모르겠네요.
패스!  [아무튼 Private Sub Form_Load() 라는 곳에 이 소스를 넣으면않됩니다.
새로운 공간에 적어주세요
.]

Private Sub Form_Load()
End Sub
Private Sub Label1_Click()
NewExplorer "http://myoa.tistory.com"
End Sub
Label1 을 클릭했을시..
http://myoa.tistory.com 을 연다.
정도입니다.. [Label 은 텍스트 입니다.]



결국 실행파일입니다.



휴우 긴 강좌(?)가 끝났군요.  뭐 어떻게 이해가 되셨는지 않되셨는지 모르겠지만
그다지 어려운 내용은 아니니, 여러번 반복해서 읽다보면 쉬워지겠군요 :D