업무 스킬/Excel VBA(43)
-
[Excel VBA] Userform Listbox를 통한 Sheet 검색 및 선택
안녕하세요. 윤대리입니다. 오늘은 제가 필요해서 만드는 겁니다. ^_^ 지금 회사에서 제가 사용하는 Exce내에 Sheets가 100개가 넘어가다 보니 Sheets를 검색하고 Select 할 수 있는 Userform이 하나 필요해서 차근차근 만들어 보도록 하겠습니다. 1. Userform 실행 시, Sheets의 이름을 ListBox에 정렬 일단 위와 같이 이름의 앞자리가 100,200,300으로 된 총 9개의 Sheet가 있는데요. 지금은 뭐 예제를 위해서 9개밖에 만들지 않았지만 회사에 가면 100개가 넘어가는 Excel 파일이 있답니다. ㅠㅠ 우선 [Userform_Initiallize]를 사용하여 Listbox에 Sheets.name 이 정렬될 수 있는 Code를 작성해 보겠습니다. Userfor..
2020.08.03 -
[엑셀 VBA] Onkey(단축키 설정)을 사용하여 UserForm 열고 닫기
[Onkey] 메서드는 대부분 [UserForm]을 실행하는 단축키를 지정할 때 많이 사용합니다. 주의할 점은, [Onkey]를 사용한 단축키 지정이 엑셀 단축키와 겹칠 경우, [Onkey]가 상위 포지션에 위치하게 되므로 엑셀 단축키는 작동을 하지 않게 됩니다. 때문에 엑셀 단축키가 없는 키나 잘 사용되지 않는 키로 지정하는 것이 좋습니다. 참고로 저는 주로 {F3}키를 사용하여, [UserForm]을 실행합니다. 수식에 대해 하나씩 알아보겠습니다. [Application.Onkey]까지 작성해주면 위 그림과 같은 형태로 나오게 됩니다. 순서대로 ① 단축키로 사용될 Key와 ② 단축키로 실행될 Procedure명을 뜻합니다. 저는 대부분 {F3}키를 단축키로 사용하기 때문에 아래 그림과 같이 작성합니다..
2020.07.25 -
[엑셀 VBA] User Form(사용자 정의 폼)의 List Box 활용하기
[UserForm]에서 빈번하게 사용하는 [ListBox]를 사용해보자 ListBox의 기본은 현재 Excel의 DATA를 ListBox에 옮겨 놓는 것이다. 우선 위의 [팀 전화번호]를 UserForm의 ListBox에 채워넣을 건데, 순서는 다음과 같다 ① ListBox에 넣고자 하는 Data Address를 [SET] 문을 통해 설정. ② ListBox의 특성을 설정한다 예컨대 -ListBox의 Column 개수 -Head 유무 -Column Width ③ ListBox에 Data 집어 넣기. 우리는 UserForm을 열자 마자 ListBox에 Data가 있길 원하니 UserForm_Iniitialize를 사용할 것이다. 만약 모른다면.. 방법은 간단하다 UserForm에서 저기 빈공간을 더블클릭하..
2020.07.17 -
[엑셀 VBA] Private, Public 문을 사용하는 변수 사용
VBA초급 시절에는 모든 변수 설정은 Dim으로 하게 되지만 중급~고급으로 넘어가면서 만들어야 하는 Sub가 많아지면서 변수 선언이 많이 겹치게 된다. (특히 i as Integer 같은) 그럴 때 모든 Sub(프로시저)에서 똑같은 변수를 사용할 수 있게 하는 선언문이 있는데 바로 전역 변수의 선언문인 [Private] 와 [Public]이다. 사용법은 맨 위 예제를 보면 대충 감이 올 텐데 정의를 설명을 하자면 [Private] 문으로 선언된 변수는 같은 코드 창 내의 모든 프로시저가 공유해 사용을 하고 [Public] 문으로 선언된 변수는 공유 사용 + 먼저 작동된 프로시저의 변수에 대한 메모리가 저장된다는 점이다. 때문에, 각 Sub 별로 연결되는 변수 일 경우 [Public]을 쓰면 좋지만, 변수..
2020.06.30 -
[엑셀 VBA] CHART X,Y축 글씨 크기 변경
Chart를 형성하는 Macro Code는 늘 헷갈린다. 그중 초보자에게 가장 헷갈리는게 [축]인데 여기서 중요한 것은 [축]을 변수로 선언할 때에는 [Axis]로 그리고 CODE로 사용할 때에는 [Axes] 로 사용해야 한다는 것이다. ▶ Axes(1) : X축 Axes(2) : Y축을 뜻한다. 그리고 Chart를 사용하는 코드에서 기본적인 것은 ChartObjects([숫자])를 사용하여 현재 Sheet에 있는 Chart를 선택하고 그 후에, Chart를 추가로 입력후 메서드나 변경 함수를 써줘야 한다. 주의해야 할 점은 [ChartObjects([숫자]).Chart] 는 [ActiveChart]와 같으므로 만약 [ActiveChart]가 활성화 되어있다면 [ChartObjects([숫자]).Char..
2020.04.13 -
[엑셀 VBA] 빈 열(또는 행) 삭제하기
위와 같이 빈 셀이 중간중간 있는 DATA의 경우 빈 셀이 있는 열만 골라서 삭제 해주어 자동 정리 되는 매크로를 만들어보자 만들기 전에 알아야될 기본 코드를 먼저 설명하면 1) Activesheet.Usedrange @현재 Sheet의 모든 Data 범위 2) 범위.Columns.Count @선택된 Data 범위의 열 개수 3) Columns([숫자]). Entirecolumn @[숫자] 번째 열 전부 위 3개의 코드에 Excel에서 쓰이는 [CountA] 함수를 써서 빈 셀이 있는 열을 골라서 삭제해줄 거다 코드를 오래 짜 본 사람들은 대충 감이 올 거다 방식은 1. 범위를 정하고 2. 범위를 순서대로 훑는다. 3. IF문을 써서 빈셀을 찾아낸다. 빈칸을 찾아내는 코드는 IsEmpty도 있지만 VBA..
2019.12.29