vba 30

[VBA] 엑셀을 열지 않고 Userform을 실행하는 방법

VBA로 개발된 프로그램을 실행하기 위해서는 엑셀을 열어야 합니다. 하지만 자주 쓰는 매크로의 경우 이러한 과정이 귀찮을 수 있죠. VBS를 활용해서 바로 Userform을 열 수 있는 방법을 소개드리겠습니다. 참고로, exe 파일과는 다르게 해당 컴퓨터에 실행을 원하는 매크로 엑셀 파일이 존재해야 합니다. 우선 아래와 같이 간단한 계산기 프로그램을 만들었습니다. 이제 왼쪽 메뉴 중 Microsoft Excel 개체의 현재_통합_문서에 가서 다음과 같은 코드를 작성합니다. Private Sub Workbook_Open() UserForm1.Show End Sub 엑셀을 열면 바로 UserForm이 나오게 하는 간단한 코드죠? 이제 메모장을 하나 열어줍니다. 그리고 아래의 코드를 메모장에 적어줍니다. Di..

[VBA] 우클릭 Command Bar 메뉴 편집하기

엑셀뿐 아니라 많은 프로그램에서 우클릭을 통해 메뉴를 띄우고 기능을 사용할 수 있습니다. 엑셀에서는 VBA를 통해 우클릭 메뉴를 추가하고 삭제할 수 있습니다. 메뉴 추가하기 Sub AddMenu() Dim CmdBar As CommandBar Set CmdBar = Application.CommandBars("Cell") With CmdBar.Controls.Add .Tag = "My_Tag" '추가할 메뉴의 태그 .Caption = "추가된 메뉴" '추가할 메뉴의 이름 .FaceId = 137 '함께 표시할 아이콘 .OnAction = "ExecuteFn" '실행할 함수 End With End Sub Sub ExecuteFn() MsgBox "실행되었습니다" End Sub 위와 같이 코드를 작성하고 실..

[VBA] TreeView(1): File Structure 출력

TreeView를 이용해 File Structure를 출력하기 위해선 먼저 두 가지 작업을 해주어야 합니다. 1. Userform 도구 상자에 TreeView 추가하기 1. 도구 상자에서 우클릭 후 [추가 컨트롤]을 클릭. 2. "Microsoft TreeView Control, version 6.0"에 체크 후 [확인] 실행하면 도구 상자에서 TreeView를 사용할 수 있습니다. 2. Microsoft Scripting Runtime 참조하기 1. VBA 창 상단의 [도구] 탭에서 [참조]를 클릭. 2. "Microsoft Scripting Runtime"에 체크 후 [확인] 여기에 체크를 해주어야 File System과 관련된 라이브러리를 사용할 수 있습니다. 이제 본격적으로 프로그램을 만들어 보겠..

[VBA] Choose Function

Choose 함수는 여러 argument 중 하나를 선택하는 함수입니다. 사용법은 다음과 같습니다. Choose(index, argument1, [argument2, argument3, argument4...]) index: 뒤에 작성된 argument의 위치 argument: 선택될 값. Variant 자료형이기 때문에 어떠한 값도 올 수 있다. 하나 이상의 값이 존재해야 한다. Choose 함수는 argument들 중 index의 위치에 있는 값을 반환합니다. 만일 argument의 개수를 넘어서는 index를 사용할 시 Null 값을 반환합니다. Sub Choose_Example() Debug.Print Choose(1, "Lee", 2, True, 112.3, Empty) Debug.Print C..

[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] 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인 하나의 문자열 배열..