본문 바로가기

Excel/VBA 공부14

얼렁뚱땅 엑셀 VBA] Range 개체 Range 개체 셀 또는 범위 참조 Range 개체를 이용해서 셀 또는 범위를 선택하는 방법 1234567891011121314Sub range_test() Range("A1").Value = 1 ' .value 속성이 기본값Cells(2, 1) = 2 'Cells(Row, Col), cells(1,1)Cells(3, "A") = 3 Range("A4:A6") = 4Range("A7", "A9") = 5 ' 쉼표로 분리해도 연속된 범위로 인식 Range("A10:A11, B1:B5") = 6 '떨어진 범위 ' 만약 여기서 "A10:A11", "B1:B10" 로 각각 따옴표로 묶어주면 ' 연속된 범위로 인식함 End SubColored by Color Scriptercs Range 개체의 주요 속성 Add.. 2017. 5. 26.
얼렁뚱땅 엑셀 VBA] InputBox InputBox 함수와 InputBox 매서드 InputBox 함수 사용자로부터 값을 입력받는 함수. InputBox는 입력받은 값을 String 형태로 반환. 기본구문은 아래. InputBox(prompt, [title], [default], [xpos], [ypos], [helpfile], [context]) prompt - 대화상자에 표시될 내용. 생략불가 title - 대화상자의 제목표시줄에 표시될 내용 default - 대화상자에 값을 입력하지 않을 때의 기본 값 xpos, ypos - 대화상자의 위치 값 helpfile, context - F1을 눌렀을 때 보여줄 도움말 파일 123456789Sub 인사() Dim msg As String msg = InputBox("어떻게 불러드릴까요?", .. 2017. 5. 25.
얼렁뚱땅 엑셀 VBA] 매개변수의 전달 - ByRef, ByVal 프로시저에 매개변수를 전달하는 방법. ByVal - 값에 의한 전달 ByRef - 참조에 의한 전달(디폴트) 프로시저 작성에 별다른 표기를 하지 않으면 참조에 의한 전달(ByRef)을 기본적으로 적용한다. 12345678910111213141516171819202122Sub mainPro() Dim i As Integer Dim j As Integer i = 10 '메인프로세스에서 변수값 10으로 저장 j = 10 Call subPro(i, j) '서브프로세스 호출 MsgBox "i : " & i & " , " & "j : " & j End Sub ----------------------------------------------------- Sub subPro(ByVal i As Integer, ByR.. 2017. 5. 24.
얼렁뚱땅 엑셀 VBA] Function 프로시저 Function 프로시저 Function 프로시저는 사용자 정의 함수라고 할 수 있다. Sub 프로시저와 달리 매개변수를 인수로 받을 수 있고 결과값을 반환한다. (매개변수 - 프로시저를 호출할 때 해당 프로시저에게 전달하는 값) 기본 구문은 아래와 같다. Function 함수명 (매개변수1 As 변수형식, 매개변수 2 As 변수형식....)_ As 결과값_데이터형식 '실행명령 함수명 = 결과값 End Function 매개변수의 생략 : Optional 키워드 - 만약 생략할 수 있는 매개변수가 있을 경우 매개변수 앞에 Optional 키워드를 넣는다. - Optional 키워드는 맨 마지막 매개변수에만 사용할 수 있다. (Optional 매개변수가 2개 이상이라면 맨 뒤 쪽으로 붙여서 사용한다. - O.. 2017. 5. 23.
얼렁뚱땅 엑셀 VBA] 순환문(For ~ Next / For Each ~ Next) For ~ Next문 프로시저 내에서 특정 명령을 반복하기 위해서 사용하는 구문. For 카운터 = 시작번호 to 끝번호 [Step 간격] '실행명령[Exit For]Next [카운터] - 카운터는 별도 Step을 정해주지 않으면 1씩 증가 12345678910111213Sub 합계() Dim Sum As IntegerDim Counter As IntegerSum = 1 For Counter = 1 to 10 ' Counter 1부터 10까지 For문 순환 sum = sum + sumNext Counter MsgBox Sum End SubColored by Color Scriptercs For Each ~ Next문 For~Next문과 비슷하지만 지정한 횟수를 반복하는게 아니라 컬렉션의 개체를 순환하거나.. 2017. 5. 21.
얼렁뚱땅 엑셀 VBA] 조건문(Select Case문) Select Case 두 개의 조건을 처리할 때는 If ~ Then, 세 개 이상의 조건 중 하나를 처리할 때는 Select Case 구문을 사용하는 것을 권장한다고. (코드의 간결함? 가독성??) Select Case 판단대상 [Case 조건 n][판단대상의 조건 n이 참일 때 실행할 명령][Case Else][디폴트 실행 명령문]End Select 판단대상은 수식 또는 문자식으로 주어진다. Case문의 조건 처리 방법에 대해 알아보면 Case 1 ' Select Case 의 판단대상이 1이라면 아래 나오는 문장 처리 Case "OK" ' 판단대상이 OK라는 문자열이라면 처리 Case 1,2,3 ' 쉼표로 구분된 값 중 하나와 일치하면 처리 Case 1 to 10 ' 1~10 사이의 값이라면 처리 Ca.. 2017. 5. 20.
얼렁뚱땅 엑셀 VBA] 조건문(If~Then~Else문 / IIf문) If문 If문의 기본 구문은 아래와 같다. If 조건 Then 참일 때 명령문 [Else 거짓일 때 명령문] Else문은 선택적으로 사용할 수 있기 때문에 If만 있는 문장도 가능하다. If Time < 0.5 then MsgBox "Good Morning" If문을 한 줄로 입력하지 않고 2줄로 입력할 경우 IF 문 뒤에 End If문을 넣어줘야 한다. If ~ ElseIf If문에 조건을 더하려면 ElseIf문을 추가하고, If문에 조건이 거짓일 때 명령문을 추가하려면 Else문을 추가한다. 이 두가지 모두 선택적으로 사용할 수 있다. If 조건 Then 참일 때 명령문 [ElseIf 두번째_조건 Then]두번째_조건이 참일 때 명령문[Else] 위의 두 조건에 해당하지 않을 경우 실행할 디폴트 명령.. 2017. 5. 19.
얼렁뚱땅 엑셀 VBA] 배열변수, 동적 배열변수 배열변수 배열을 저장할 수 있는 배열변수는 별도 표시가 없는 경우 인덱스 번호 0부터.(필요한 변수 갯수보다 하나 적은 숫자 기입) 인덱스 번호를 1부터 사용하려면 to를 함께 사용 Dim 배열변수(9) As String ' 10개의 변수 저장 가능 Dim 배열변수(1 to 10) As String '10개의 변수 저장 가능 다차원 배열변수 2차원 배열이 제일 많이 사용됨 R * C 형태로 사용됨(Row * Column) 로또 결과를 50회차까지 저장하려면 50*6 형태를 사용. Dim 로또누적(1 to 50, 1 to 6) 로또누적(1, 1) = 2로또누적(1, 2) = 11로또누적(1, 3) = 16...로또누적(50, 4) = 30로또누적(50, 5) = 37로또누적(50, 6) = 41 동적 배열.. 2017. 5. 18.
얼렁뚱땅 엑셀 VBA] 변수, 상수, 개체변수 변수 선언 엑셀에서 변수는 Dim 문으로 선언하고 Let 문으로 변수에 값 저장(Let 문은 생략 가능) Dim 변수명 As 데이터형식 Let 변수명 = 값 12345'예시) Dim test_변수 As String Let test_변수 = "toward th end..." 'Let 생략 가능cs 변수는 붙여서 한꺼번에 선언하는 것을 불가능하다. Dim 변수1, 변수2, 변수3 As Integer => 이런 방법 불가능(이렇게 선언할 경우 앞 2개는 Variant 형으로 선언한 것으로 처리) 올바른 방법은 아래. Dim 변수1 As IntegerDim 변수2 As IntegerDim 변수3 As Integer 또는 Dim 변수1 As Integer, 변수2 As Integer, 변수3 As Integer .. 2017. 5. 17.