엑셀매크로 20

[엑셀VBA] 강제 줄바꿈 셀 분리하기

매크로 설명 워크시트 데이터 중에서 강제 줄바꿈(Alt + Enter)이 들어간 셀을 나누는 매크로이다. 코드의 요점은 강제 줄바꿈이 있는 셀을 찾아서 줄바꿈을 카운트하고 해당 카운트만큼 셀을 삽입하는 방식이다. 필요에 의해 가볍게 쓰려고 만든 코드이다. 곧바로 가져다 쓰기에는 무리가 있을 수 있다. (알맞은 변형이 필요하다.) 매크로 실행 동영상 VBA Code Sub forced_enter_separation() Dim k As Integer, cnt As Integer Dim varSize As Integer Dim myColumn As String Dim lastRow As Integer With ActiveSheet.UsedRange lastRow = .Row + .Rows.Count '마지막 ..

VBA Macro/VBA Excel 2018.03.05

[엑셀] 워크시트의 오류값 리턴(CVErr 함수)

S Y N O P S I S #워크시트의 오류값 리턴하기 VBA 내장 오류코드가 아닌 엑셀 시트의 오류(#N/A 같은)를 반환한다. 오류를 예외로 처리하여 엑셀의 내장함수와 연동하는 경우 유용하다. VBA Code Option Explicit Dim myTop As Long Sub sht_Err() 'CVErr(xlErrDiv0) #DIV/0! 오류 반환 'CVErr(xlErrNA) #N/A 오류 반환 'CVErr(xlErrName) #NAME? 오류 반환 'CVErr(xlErrNull) #NULL! 오류 반환 'CVErr(xlErrNum) #NUM! 오류 반환 'CVErr(xlErrRef) #REF! 오류 반환 'CVErr(xlErrValue) #VALUE! 오류 반환 End Sub 매크로 실행 동영상..

VBA Macro/VBA Excel 2018.03.05

[엑셀] 병합된 셀을 풀고 같은 내용으로 채우기

매크로 설명 병합된 셀을 풀어야 할 때가 있는데, 이 경우 첫 셀만 값이 남으므로 기분이 나쁘다. 아래 매크로는 병합을 푼 셀의 나머지 셀에도 동일한 내용을 집어넣는 매크로이다. 빈 셀이 있다면 문제가 있을 수 있다. 백업시트를 만들어둔 이후에 실행하길 추천한다. 매크로 사용이 번거롭고 귀찮다면 추가기능을 활용할 수 있다. 추가기능 링크(클릭) 매크로 실행 동영상 VBA Code Option Explicit Sub unMergeCells() Dim i As Long Dim myCol As Long Dim lastRow As Long With ActiveSheet.UsedRange lastRow = .Row + .Rows.Count - 1 End With For myCol = 1 To 3 '1~3열까지만 ..

VBA Macro/VBA Excel 2018.01.24

[엑셀] VBA로 스택 구현

S Y N O P S I S #VBA로 스택 구현하기 VBA로 구현한 스택이다. 별 건 없다. 필요할 때 가져다 쓰려고 만들어봤다. VBA Code Option Explicit Option Base 0 Const MAXI = 5 'stack 크기 설정 Dim myTop As Long Sub myStack() Dim myArr() As Variant myTop = -1 ReDim Preserve myArr(MAXI) 'stack 크기만큼 배열 초기화 Call push(myArr, "아이템 1") Call push(myArr, "아이템 2") Call pop(myArr) Call pop(myArr) End Sub Function push(ByRef fn_arr() As Variant, ByVal fn_ite..

VBA Macro/VBA Excel 2018.01.14

[엑셀] 유사 단어의 일치도(%) 산출 매크로

S Y N O P S I S #유사한 단어의 일치도(%) 산출하기 유사한 단어의 일치도(%)를 산출한다. 구체적으로 두 단어 사이의 최대 연속 부분의 일치도를 산출하는 매크로이다. 예컨대 "기계자동차공학부"와 "자동차공학과"를 비교했을 때, (전자를 기준으로) 전체 8개 글자 중에서 5개 글자가 일치하므로 5/8 = 62.5%가 일치하는 셈이다. 연속된 글자일 경우에만 산출한다. 불연속 글자의 경우는 일부 코드의 수정이 필요하다. 예시는 전문대학 공학계열 학과 리스트 중에서 찾는 단어(GoalText)의 일치도를 산출한다. 예시 영상에서 100% 일치인데 40%로 나오는 건 괄호와 숫자가 있기 때문. VBA Code Option Explicit Sub max_common_text() Dim lastRow..

VBA Macro/VBA Excel 2018.01.13

[엑셀] 글자 수 세기 (사용자 정의 함수)

# 특정 문자열에서 지정한 글자가 몇개 있는지 세어주는 매크로. # 사용자 정의 함수를 활용하여 엑셀 시트 내에서 함수처럼 쓸 수 있다. # 문자열이 있는 셀 주소를 참조할 수도 있고, 문자열을 직접 설정할 수도 있다. # 대소문자를 구분한다. VBA Code #1 Option Explicit Function cntChr(ByVal target As Variant, ByVal txt As Variant) Dim i As Long Dim cnt As Long Dim start As Long cnt = 0 start = 1 i = 1 Do If InStr(start, target, txt) > 0 Then '찾는 글자가 있으면(>0) cnt = cnt + 1 '카운트를 증가하고 start = InStr(st..

VBA Macro/VBA Excel 2018.01.11

[엑셀] 같은 내용인 경우에 셀 병합하는 매크로

매크로 설명 특정 열에서 같은 내용이 반복적으로 나타나는 경우 해당 셀들을 병합하는 매크로이다. 데이터 활용에 있어서 셀 병합을 선호하지 않지만, 정리를 위해서 가끔식 필요한 매크로이다. 대략적으로 만들어서 빈 셀 처리 등은 문제가 발생할 수 있다. (매크로를 실행하기 전 시트를 백업해두자.) 사용 조건: 예시 동영상과 같이 빈 셀이 없어야 한다. 빈 셀이 없도록 데이터를 예쁘게 만져놓아야 한다. 매크로 실행 동영상 VBA Code Option Explicit Sub mergeCells() Dim i As Long Dim marker As Long Dim lastRow As Long Dim mergeCol As Long Application.DisplayAlerts = False '병합시 발생하는 대화창..

VBA Macro/VBA Excel 2017.12.19

[엑셀] 빈 행, 빈셀 삭제하기 매크로

매크로 설명 첫 번째 시트 "A"열의 빈셀 또는 빈셀이 있는 행 전체를 삭제하는 매크로 이 방법 외에도 SpecialCells 메서드로 빈행을 찾아서 없앨 수 있다. (방법은 많다.) 많은 데이터가 아니거나 손이 많이 가지 않는다면, 자동필터를 이용해서 빈 필드는 제외하고 따로 복사하는 방법을 추천한다. VBA Code 예시 Option Explicit Sub empt_row_del() Dim i As Long Dim lastRow As Long Dim targetCol As String Dim mySheet As Worksheet Set mySheet = Sheets(1) 'mySheet를 첫 번째 시트로 설정, 다른 시트가 필요하다면 변경 With mySheet.UsedRange lastRow = ...

VBA Macro/VBA Excel 2017.11.14

[엑셀] 키워드 분석 매크로 (작성중)

여러 단어들에 포함된 키워드를 뽑아내는 매크로이다.2개짜리 단어, 3개짜리 단어 등 단어 길이만큼 모조리 검색해서 빈도수별로 키워드 순위를 알려준다.예를 들어, 다음과 같은 대학 학과 리스트에 매크로를 적용하면{수학과, 수학교육학과, 수학교육과} 수학 = 3 교육 = 2 학교 = 2 수학교 = 2 학교육 = 2 수학교육 = 2위와 같은 형식으로 빈도를 뽑아낸다.※ 아직 VBA 코드를 수정하지 않아 가져다 쓰기에는 무리가 있다. (현재는 말도 안되게 무식한 코드이다.)혹시 테스트를 해볼 요량이면, 시트명이 Sheet1인 시트의 B열에 데이터를 나열하고 실행하면 된다. 엑셀 키워드 빈도 분석 VBA 코드 Option Explicit Dim i As Long, j As Long, k As Long Dim cn..

VBA Macro/VBA Excel 2017.10.19

[MS 일반] 개체모델

개체모델(Object Model)이란? 개체모델(Object Model)은 특정 개체의 모든 구성 요소를 구분하고 분류하기 위한 일종의 틀이다. 하나의 건물을 개체모델의 예로 들어보자.여기 관악구청이 있다. 관악구청은 여러 개의 부서로 나눠질 것이고,각 부서마다 팀이 있고 각 팀마다 책상, 의자, 컴퓨터, 사람 등 무수한 개체가 있을 것이다.누구든지 관악구청의 서무과의 경리팀에 있는 의자에 앉으려면 관악구청 > 서무과 > 경리팀 > 의자 순서로 접근해야 한다. 이를 VBA의 개체모델 접근 방식으로 바꾸면,관악구청.과(서무).팀(경리).의자(1) 과 같은 형식이 된다. MS Office의 개체 모델은 작성자가 이해하는 한 이와 같은 방식으로 작동된다. 파워포인트의 특정 개체에 접근하는 코드를 살펴보자.Ac..

MS Office 일반 2017.10.18