Daily Life of BlueRose
728x90

VBA 11

엑셀 셀 합치기 일괄 적용 및 해제 방법(VBA 활용)

여는 글엑셀에서 가장 아쉬운 기능 중 하나는 동일한 내용의 셀에 대해 묶어주고, 풀어주는 기능이 없다는 점입니다. 물론 엑셀을 데이터 처리용으로 사용한다면 한 줄마다 각각 데이터가 있어야 하는게 맞지만, 우리의 회사는 그렇게 호락호락하지 않습니다... 동일한 사람에 대해 여러 개의 데이터가 있다면 왜 이렇게 보기 어렵게 해놨냐고 당장 과장님께 불려가서 잔소리를 듣게 될 수도 있습니다. 때문에, 보고서를 보는 분들께서 보기 편하도록 같은 값끼리 묶는 경우가 생각보다 많아서 자주 사용하게 됩니다. 그런데, 이러한 셀합치기를 매번 일일이 손으로 하기는 굉장히 힘들죠. 하지만 이러한 기능을 코드로 작성하여, 개인용 매크로 통합 문서에 저장해두면 필요할 때마다 범위를 선택하고 매크로만 작동시키면 되서 상당히 편해..

VBA 매크로를 문서마다 재활용하는 방법(Personal 파일 활용)

여는글엑셀을 활용하여 매크로를 만들다보니, 문득 공통적으로 사용하는 매크로를 어딘가에 등록해놓고 그때그때 버튼만 눌러서 활용할 수 없을까 라는 생각이었습니다. VBA에는 이러한 상황에 대비하여, 매크로를 저장하고 모든 문서에서 공통적으로 활용할 수 있도록 기능을 제공하고 있습니다. 여러분들께서 매크로를 기록할 때, 매크로 저장 위치로 뜨는 ‘개인용 매크로 통합 문서’가 바로 그 기능입니다. 참고로 이 개인용 매크로 통합 문서는 PC의 특정 위치에 'PERSONAL.XLSB'로 저장됩니다.   개인적으로는 개인용 매크로 통합 문서를 활용하면서 엑셀의 활용성이 한 단계 업그레이드 되었습니다. 언제든 불러올 수 있는 매크로 파일 덕분에, Merge 일괄 적용, 해제처럼 자주 사용되지만 엑셀에서 기본제공하지는 ..

엑셀 VBA 기본기능 정리 - 중복데이터 처리

중복데이터 처리 중복값 제거방법엔 여러가지가 있지만 개인적으로 콜렉션 기능은 잘 안쓰게 되다보니 대부분의 경우에는 RemoveDuplicates를 사용하게 되더군요. 모로가도 서울만 가면 되기 마련이니, 각자에게 가장 편한 방법을 찾으시면 될 것 같습니다만은, 일반적으로 프로그래밍에서 요구되는 중복값 제거 방법은 컬렉션 기능을 사용하는 부분이 가장 유사한것 같습니다. 중복값을 스스로 제거하지 못해서 에러발생을 막는 코드를 동원해야 비로소 고유값 추출이 가능한 한계는 있지만요, 아래 기재된 방법을 추후 잘 사용하진 않을것 같지만, 만일을 대비하여 정리해두려 합니다. 중복값 제거 방법의 종류 VBA 함수 중 RemoveDuplicate을 사용하거나, 고급필터의 중복값 제거 기능 활용 (여기서는 다루지 않음)..

엑셀 VBA 기본기능 정리 - Cells/Range 관련 속성 및 메서드

Cells/Range 관련 속성 및 메서드 간단한 메서드 메모삽입 : AddComment(Text) 셀내용물 삭제 : ClearContents 셀 배경색상 수정 : interior.color = RGB(255, 255, 255) 셀 테두리 설정 : Borders 기본형 : Range.Borders(Index).LineStyle = xlNone 특징 Range개체의 테두리를 일일이 설정할 때 사용 Index에는 xlEdgeTop, xlEdgeBottom, xlEdgeLeft, xlEdgeRight와 xlDiagonalDown, xlDiagonalUp 그리고 xlInsideHorizontal, xlInsideVertical이 있음 하위 속성으로 LineStyle, Weight, Color가 있으며, 각각 I..

엑셀 VBA 기본기능 정리 - 시트 관련 속성 및 메서드

엑셀 VBA 기본기능 정리 - 시트 관련 속성 및 메서드 추가하기 : add .add after=ActiveSheet, Count:=3 : 액티브 시트 뒤에 3개의 시트 추가 .add after=sheets(sheets.Count), Count:=3 : 가장 뒤편에 3개의 시트 추가 .add.name=i&"월" : (For문 사용시 주로 사용) 생성과 동시에 이름 변경※ 시트의 이름 등을 호출하기 위한 시트번호는 '시트의 순서'이다. 예를들어 4번째 시트는 sheets(4)이다. 삭제하기 : delete 경고창이 뜨므로, 시행 전ㆍ후에 각각 Application.DisplayAlert = False / True를 입력하여 한시적 으로 경고창을 제거해야 한다. 주로 메인시트.Activate 후, 이터레이터..

엑셀 VBA 기본기능 정리 - 정규표현식 활용

정규표현식 정규표현식을 쓸 일은 생각보다 많지는 않지만, 연습사이트 하나 정도는 알아두면 좋긴합니다. * 연습사이트 : https://regexr.com/ 기본형 - if 문자셀 Like 패턴 then... 정규표현식 패턴 표현방법 영문 : Like [A-Z] 영문소문자 : Like [a-z] 한글 : Like [가-ㅤㅎㅣㅎ] 한글이 아닌 것 : Like [!가-ㅤㅎㅣㅎ] 숫자 : Like [0-9] 대문자A로 시작하는 모든 문자 : Like "A*" 대문자A로 시작하는 모든 문자'가 아닌 것 : if Not 문자열 Like "A*" 문자 한자리 : ? 숫자 한자리 : # 활용예 (셀 내에서 한글을 추출하는 작업) Public Function findKorean() Dim i As Long Dim tem..

엑셀 VBA 기본기능 정리 - 선택하기/범위조작(2)

엑셀 VBA 기본기능 정리 - 선택하기/범위조작(2) 범위 선택 : Range / CurrentRegion / UsedRange 특정 범위 선택 일반 선택 : Range("a1:d10").Select 전체 표 선택 : Range("시작셀", Cells(Row.Count, "d"),End(xlUp).Select* 이 경우, 마지막칸이 비어있으면 작동하지 않음 특정셀 기준 Ctrl+A 구현 : Range("특정셀").CurrentRegion.Select 워크시트 내 모든 데이터 선택(빈공간 제외) : Worksheet(1).UsedRange.Select* CurrentRegion 및 UsedRange 멤버는 반드시 특정 워크시트를 기준으로 해야함.(셀/범위 X) ** CurrentRegion 및 UsedRa..

엑셀 VBA 기본기능 정리 - 선택하기/범위조작(1)

여는 글 VBA로 자동화된 서식을 만들 때, 셀, 그리고 인접한 부분을 선택하는 기능을 숨쉬듯이 사용하게 됩니다. 특히 Cells(Rows.Count, "A").end(xlUp)은 유난히 많이 쓰이는 것 같네요. 적은건 몇개 없지만, 적혀있는 모든 내용들이 필수암기 내용들입니다. 편하려고 찾다보면 자연스럽게 외워지긴 할거에요. 엑셀 VBA 기본기능 정리 - 선택하기/범위조작(1) 특정 셀 선택 Range("a1").Select Cells(1, "az").Select – 일반적인 사용 Cells(Foo, "az").Select – 변수활용. For문과 상성이 좋다. Cells(1, 1).Select – 숫자만 사용 열의 번호는 직접 실행창(Ctrl+G)에서 ?range("AZ1".Column)으로 검색 C..

엑셀 VBA 기본기능 정리 - VBA 함수, 워크시트함수, 메서드 불러오기

여는 글 여러가지 라이브러리와 기능이 지속적으로 제공되는 다른 언어들과 달리, 일정 수준 이상으로 발전하지 않고 호환성을 위해 멈추어있는 VBA는 군더더기라고 할만한 기능은 딱히 없는것 같습니다. 배워두면 결국은 대부분 언제 어디서든 쓰게 되어있는 것 같더군요. 그 중에서도 가장 많이 사용되는 핵심 기능들이 Applicaition / Worksheetfuntion 이하의 함수/메서드인것 같습니다. 물론 Range 등 숨쉬듯이 사용하게되는 여러 객체도 있지만, 엑셀에 기본적으로 존재하는 특정 기능을 불러오는 함수들이 대부분 여기에 속하는 것 같네요. 자주 사용해보았던 함수들을 한 번 정리해보았습니다. 엑셀 VBA 기본기능 정리 - VBA 함수, 워크시트함수, 메서드 불러오기 VBA 함수, 워크시트함수, 메..

엑셀 VBA 기본기능 정리 - 변수·자료형·배열·컬렉션 선언 / 반복문

VBA의 부족한 기능성을 보완하기 위해 배열을 자주 쓸 것 같지만.... 배열도 지원하는 기능이 너무 적어 생각보다 쓰지 않게되네요. 그래도 중복값제거때문에 컬렉션은 가끔 쓰게됩니다. 엑셀 VBA 기본기능 정리 - 변수·자료형·배열·컬렉션 선언 / 반복문 변수, 자료형 선언 전역/지역 설정 개요 : 서브프로시저 내부에서 설정한 변수는 해당 프로시저를 벗어나면 사용할 수 없다. 즉 subA의 변수 a, b는 subA에서 functionB 호출시 활용할 수 없다. 따라서 사용할 지역에 따라 선언방법을 구분해야 한다. 지역의 구분 및 선언 방법 : Modules > Module > Subroutine 모든 모듈에서 공유 가능한 변수의 선언 : 활용할 서브프로시저가 작성된 module의 최상단 라인(option..

반응형