본문 바로가기

엑셀257

얼렁뚱땅 엑셀 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.
엑셀Tip] 1행으로 된 자료를 2열로 정리하기 이전 블로그에서 2열로 된 데이터를 아래 행으로 옮겨서 2행으로 만드는 방법에 대해 정리했었다. - 엑셀] 데이터를 아래로 옮겨 2열을 2행으로 만들기 이번 글에서는 위 그림과 반대로 1행으로 된 자료를 2열씩 끊어서 옮기는 방법에 대해서 알아본다. 행으로 된 자료를 몇 개의 열로 옮기려면 offset함수를 사용한다. OFFSET함수는 참조를 반환하는 함수로 기본 구문은 아래와 같다. OFFSET(기준셀, 행방향 이동 수, 열방향 이동 수, 참조 높이, 참조 너비) 즉, offset함수는 기준 셀에서부터 행 방향과 열 방향으로 각각 이동한 다음 그 셀값을 반환하는 함수이다. offset함수 사용이 익숙하지 않으면 어떤 숫자가 들어가야 하는지 생각하면서 거꾸로 수식을 만들어가는 방법을 사용하는 것이 낫다... 2017. 5. 22.
얼렁뚱땅 엑셀 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.
얼렁뚱땅 엑셀 VBA] 프로시저 (Public / Private 프로시저) 프로시저(Procedure) 하나 또는 그 이상의 처리를 위한 구문의 묶음. VBA에서의 실행 명령. - Sub 프로시저 : 일반적인 처리를 위한 프로시저. 대표적 프로시저. 명령들의 흐름 - Funtion 프로시저 : 프로시저 내에서 어떤 처리를 하고 그 결과값을 반환하는 프로시저 - Property 프로시저 : 사용자가 속성을 만들거나 저장하는 프로시저(잘 사용하지 않음) Public / Private 프로시저 디폴트값은 Public 프로시저. Public 프로시저는 다른 모듈에서도 호출 가능(다른 프로시저를 호출하기 위해서는 Call 명령어 다음 프로시저 이름을 적는다) Private 프로시저는 다른 모듈에서는 호출 불가능 모듈 내의 모든 프로시저를 private 으로 선언하려면 모듈 내 첫번째 S.. 2017. 5. 16.