| 엑셀 VBA 기초 강의 1-4 편 | 엑셀 VBA 변수 지정과 데이터타입 설정 예제 |
첨부파일에 이상이 생겼을 경우, 1:1 문의하기로 연락주시면 신속히 해결해드리겠습니다.
1. VBA 코드 전문
Sub DataType_Test() Dim MyInt As Integer Dim MyLng As Long Dim MyDbl As Double Dim MyStr As String Dim MyVar As Variant Dim MyBln As Boolean Dim MyObj As Range '=============================== 'Range("A1") 값 = 1 '=============================== MyInt = Range("A1") MyLng = Range("A1") MyDbl = Range("A1") MyStr = Range("A1") MyVar = Range("A1") MyBln = Range("A1") Set MyObj = Range("A1") MsgBox "Integer: " & MyInt MsgBox "Long: " & MyLng MsgBox "Double: " & MyDbl MsgBox "String: " & MyStr MsgBox "Variant: " & MyVar MsgBox "Boolean: " & MyBln MsgBox "Object: " & MyObj.Value MsgBox "Integer + Integer: " & MyInt + MyInt MsgBox "Double + Double: " & MyDbl + MyDbl MsgBox "String + String: " & MyStr + MyStr MsgBox "Variant + String: " & MyStr + MyVar End Sub
2. VBA 명령문 코드 분석
2-A. 변수 지정
: Dim 함수를 사용하여 각 변수를 알맞은 데이터타입으로 지정합니다.
Dim [변수명] As [데이터타입]
* 각 변수의 데이터타입에 대한 설명은 이전 강의 엑셀 VBA 변수 자주 사용하는 데이터타입 7가지 를 참조하세요.
Dim MyInt As Integer Dim MyLng As Long Dim MyDbl As Double Dim MyStr As String Dim MyVar As Variant Dim MyBln As Boolean Dim MyObj As Range
2-B. 지정된 변수에 데이터 할당
: 각 지정된 변수에 데이터를 (예제의 경우 A1 셀에 있는 값)을 할당합니다.
: 일반적인 데이터타입 (숫자/문자) 는 SET을 이용하지 않지만, 그 이외의 데이터타입 (보통 개체[Object]타입) 의 경우 SET으로 값을 할당해야 합니다.
* Dim 과 Set을 이용하여 개체를 할당하는 방법은 이후 강의를 참조해주세요.
MyInt = Range("A1") MyLng = Range("A1") MyDbl = Range("A1") MyStr = Range("A1") MyVar = Range("A1") MyBln = Range("A1") Set MyObj = Range("A1")
3. 각 변수를 메세지박스로 출력
: Msgbox (메세지박스 출력함수) 을 이용하여 각 변수를 메세지창으로 출력합니다.
: Msgbox 에는 여러가지 속성값이 있지만, 각각의 속성값을 입력하지 않아도 아래와 같이 짧은 문구로 쉽게 이용할 수 있습니다.
Msgbox "원하는 내용 입력": [ & ]연산자를 이용하여 직접 입력한 문자열 (""안에 있는 내용)과 변수로 할당된 내용을 구분하여 입력할 수 있습니다.
MsgBox "Integer: " & MyInt MsgBox "Long: " & MyLng MsgBox "Double: " & MyDbl MsgBox "String: " & MyStr MsgBox "Variant: " & MyVar MsgBox "Boolean: " & MyBln




여기에 질문을 드려도 답변이 달리지는 모르겠지만 답답한 마음에 올려봅니다.
시청자수가 나날이 늘고있어서 보시기는 힘드시겠지만 우연히라도 보셨으면 좋겠네요..
Sub 테스트_매크로()
Dim PTNo As String 'PTNo로 지정하고 싶은것은 셀안에 숫자 4자리입니다.'
PTNo = Range("V10")
Range("A12:V10000").Select
Selection.AutoFilter
ActiveSheet.Range("$A$12:$V$10000").AutoFilter Field:=4, Criteria1:="*PTNo*"
'엑셀 자동필터에서 "*텍스트*"로 입력하면 텍스트를 포함한 내용들이 필터링 되더군요. 그래서 PTNo라는 변수의 V10 셀값을 포함하는 필터링을 하고싶은데 잘되지않는군요... 방법을 알 수 있을까요?
ActiveSheet.Range("$A$12:$V$10000").AutoFilter Field:=22, Criteria1:="오빠두"
Range("D13:D10000").Select
With Selection.Font '빨강
.Color = -16776961
.TintAndShade = 0
End With
Range("$A$12").Select
ActiveWindow.ScrollRow = 1
End Sub
Criteria를 Variant 의 배열형태로 만들어보세요.
Dim PTNo as variant
PTNO(0) = Range("V10")
감사합니다!
여기에 질문을 드려도 답변이 달리지는 모르겠지만 답답한 마음에 올려봅니다.
시청자수가 나날이 늘고있어서 보시기는 힘드시겠지만 우연히라도 보셨으면 좋겠네요..
Sub 테스트_매크로()
Dim PTNo As String 'PTNo로 지정하고 싶은것은 셀안에 숫자 4자리입니다.'
PTNo = Range("V10")
Range("A12:V10000").Select
Selection.AutoFilter
ActiveSheet.Range("$A$12:$V$10000").AutoFilter Field:=4, Criteria1:="*PTNo*"
'엑셀 자동필터에서 "*텍스트*"로 입력하면 텍스트를 포함한 내용들이 필터링 되더군요. 그래서 PTNo라는 변수의 V10 셀값을 포함하는 필터링을 하고싶은데 잘되지않는군요... 방법을 알 수 있을까요?
ActiveSheet.Range("$A$12:$V$10000").AutoFilter Field:=22, Criteria1:="오빠두"
Range("D13:D10000").Select
With Selection.Font '빨강
.Color = -16776961
.TintAndShade = 0
End With
Range("$A$12").Select
ActiveWindow.ScrollRow = 1
End Sub
감사합니다.