프로젝트 및 실습 59

[VBA] 문자열 자르기(Left, Right, Mid)

VBA에서 문자열을 자르기 위해 사용되는 함수는 Left, Right, Mid 세 가지가 있습니다. 세 함수 모두 이름만 봐도 어떤 기능을 가지고 있는지 알 수 있게 직관적으로 되어있죠? Left: 문자열의 좌측 끝으로부터 지정한 길이만큼 문자열을 잘라서 반환합니다. Right: 문자열의 우측 끝으로부터 지정한 길이만큼 문자열을 잘라서 반환합니다. Mid: 문자열의 지정된 위치로부터 지정된 길이만큼 (길이를 지정하지 않으면 끝까지) 문자열을 잘라서 반환합니다. 사용법은 다음과 같습니다. Left(String, Length) Right(String, Length) Mid(String, Start, [Length]) String 세 경우 모두 String은 자르고자 하는 문자열을 뜻합니다. Length Le..

[VBA] File Dialog를 사용해 파일 선택

VBA에서 파일을 선택하고 싶을 때 File Dialog를 사용할 수 있습니다. 기본적인 구문은 다음과 같습니다. Application.FileDialog(fileDialogType) fileDialogType은 필수 값으로 다음의 4가지 중에 하나를 사용할 수 있습니다. 사용 목적에 따라 골라서 사용하시면 됩니다. Name Usage msoFileDialogFilePicker 파일을 선택할 때 사용 msoFileDialogFolderPicker 폴더를 선택할 때 사용 msoFileDialogOpen 파일을 열 때 사용 msoFileDialogSaveAs 파일을 저장할 때 사용 Application.FileDialog(msoFileDialogFilePicker).Show 여기서 추가적인 기능을 사용하고 ..

[VBA] SGN Function

VBA에서 SGN 함수는 숫자의 부호를 확인할 때 사용합니다. 사용법은 다음과 같습니다. Sgn(number) 여기서 number의 자리에는 모든 numeric type의 변수(Byte, Boolean, Integer, Long, Date...)가 들어갈 수 있습니다. Return Value는 다음과 같습니다. 0보다 큰 경우 1 0인 경우 0 0보다 작은 경우 -1 예시를 살펴보겠습니다. Sub Sgn_Example() Debug.Print "True: " & Sgn(True) 'Boolean Debug.Print "False: " & Sgn(False) 'Boolean Debug.Print "10: " & Sgn(10) 'Integer Debug.Print "-10: " & Sgn(-10) 'Inte..

[VBA] 행, 열 숨기기

VBA에서는 원하는 행 또는 열을 숨길 수 있는 기능을 지원합니다. 사용법은 예시와 함께 알아보겠습니다. 우선 다음과 같이 Sheet를 준비해보았습니다. 여기서 A-B열과 1-2행을 완전히 숨기려면 다음과 같이 수행하면 됩니다. Sub Hidden_Example() Dim sht As Worksheet Set sht = Sheet7 sht.Range("A1:B1").EntireColumn.Hidden = True ' 원하는 열 숨김 sht.Range("A1:A2").EntireRow.Hidden = True ' 원하는 행 숨김 End Sub Sheet의 이름인 sht 변수에 대해서는 본인의 예제에 맞게 설정하시면 됩니다. Range를 원하는 대로 설정한 뒤, EntireColumn 속성에 대해 Hidde..

[VBA] Join Function

VBA로 문자열 배열에 있는 문자열들을 하나의 문자열로 합치고 싶을 때 Join 함수를 사용할 수 있습니다. 사용법은 다음과 같습니다. Join(sourcearray, [delimiter]) sourcearray: 필수 값으로, 하나의 문자열로 만들고 싶은 문자열 배열의 이름. delimiter: 옵션 값으로, 문자열을 합칠 때 각 문자열 사이에 들어갈 구분자. 아무것도 입력하지 않으면 " "가 기본 값으로 들어간다. 사용 예는 다음과 같습니다. Sub Join_Example() Dim Str_Arr(3) As String Str_Arr(0) = "I" Str_Arr(1) = "Am" Str_Arr(2) = "Junha" MsgBox Join(Str_Arr) End Sub 크기가 3인 하나의 문자열 배열..

[VBA] ParamArray

Function 또는 Sub를 구현하다 보면, Parameter를 여러 개 받아와야 하는 경우가 있습니다. 이 중, parameter의 개수가 계속 변할 수 있는 상황이 존재할 수도 있죠. 가장 대표적인 예시가 정수의 덧셈을 구현하는 경우입니다. Sum(2,1)처럼 두 수를 받아와서 덧셈을 수행하는 경우도 있겠지만 Sum(1,2,3,4)처럼 여러 수의 덧셈 역시 가능하도록 구현을 하고 싶을 수 있겠죠. 이럴 때 사용할 수 있는 것이 ParamArray입니다. ParamArray는 위의 예시와 같이 여러 parameter를 받아오고 싶지만, 그 개수를 특정하고 싶지는 않을 때 사용할 수 있습니다. 사용법은 Parameter를 정의할 때 앞에 ParamArray를 붙여주면 되고, 항상 배열의 형태를 가진 V..

[VBA] IIf Function

VBA가 제공하는 함수 중에 IIf 함수가 존재합니다. IIf는 생긴 것처럼 If 문과 비슷한 역할을 합니다. If문과 IIf 문의 가장 큰 차이점은 Return Value를 개발자가 설정할 수 있다는 점입니다. If문은 단지 조건이 참인지 거짓인지를 판별하기만 한다면, IIf문은 참일 경우 참에 해당하는 값을, 거짓일 경우 거짓에 해당하는 값을 반환합니다. 여기서 참 또는 거짓일 경우 반환할 값은 개발자가 지정할 수 있습니다. IIf 문의 기본적인 문법은 다음과 같습니다. IIf (expr, truepart, falsepart) expr: 참과 거짓을 판별할 표현식 truepart: expr이 참일 경우 반환할 값 또는 표현식 falsepart: expr이 거짓일 경우 반환할 값 또는 표현식 예시를 살..

[VBA] Error Handling

개발을 하다 보면 필연적으로 마주할 수밖에 없는 문제 중 하나가 Error죠. VBA에서는 Error와 마주쳤을 때 대응할 수 있는 경우의 수가 두 가지 있습니다. 1. Error를 무시하고 계속해서 진행한다. 2. 별도 구현된 Error Handling Section으로 이동한다. 각 경우에 대해 어떻게 구현할 수 있는지 알아보도록 하겠습니다. 1. Error를 무시하고 계속해서 진행한다. 기본적으로 다음의 코드를 통해 Error를 무시하고 진행할 수 있습니다. 해당 구문 다음에 오는 코드는 Error가 발생하더라도 프로그램이 종료되지 않고 다음 코드로 넘어가게 됩니다. On Error Resume Next 예시를 한 번 들어보겠습니다. 가장 쉽게 발생시킬 수 있는 에러가 정수를 0으로 나누는 것이죠...

[VBA] MsgBox 사용법

VBA를 이용해 개발을 하다 보면 원하는 메시지를 출력하고, 또 사용자의 선택을 받아오기 위해 MsgBox를 자주 사용하게 됩니다. 오늘은 이 MsgBox에 대해 알아보겠습니다. 사용법 MsgBox는 VBA에서 기본적으로 제공하는 함수로, 사용법은 다음과 같습니다. MsgBox(prompt, [, buttons] [, title] [, helpfile, context]) Parameter로 사용하는 값들 중 필수적으로 입력해야 할 요소는 prompt 밖에 없으며, 나머지는 모두 옵션입니다. prompt: MsgBox에 띄울 메시지 문자열 (필수 값) buttons: MsgBox에 표시할 버튼과 아이콘 title: MsgBox 창에 표시할 제목 helpfile: 도움말 context: 도움말 파일의 con..