프로젝트 및 실습/VBA 31

[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] 행, 열 숨기기

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..