매크로 21

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

매크로 설명 특정 열에서 같은 내용이 반복적으로 나타나는 경우 해당 셀들을 병합하는 매크로이다. 데이터 활용에 있어서 셀 병합을 선호하지 않지만, 정리를 위해서 가끔식 필요한 매크로이다. 대략적으로 만들어서 빈 셀 처리 등은 문제가 발생할 수 있다. (매크로를 실행하기 전 시트를 백업해두자.) 사용 조건: 예시 동영상과 같이 빈 셀이 없어야 한다. 빈 셀이 없도록 데이터를 예쁘게 만져놓아야 한다. 매크로 실행 동영상 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

파워포인트에 사용된 이미지 일괄 저장 매크로

매크로 설명 파워포인트 슬라이드에 있는 그림들을 일괄적으로 저장하는 코드를 응용. 파워포인트에 사용된 모든 이미지를 특정 폴더 안에 그 폴더 이름으로 저장하는 매크로이다. 매크로 실행 동영상 VBA Code Option Explicit Sub picSaveAs() Dim i As Long, cnt As Long Dim savePath As String, folderName As String Dim pic As Shape Dim targetFormat As String targetFormat = ".PNG" '그림을 저장할 형식은 PNG With Application.FileDialog(msoFileDialogFolderPicker) .Show If .SelectedItems.Count = 0 Then '..

[엑셀] 빈행을 동일하게 채우기 매크로

## 첫 번째 시트 "A"열의 빈셀 또는 빈셀이 있는 행을 윗머리 행과 같은 내용으로 채우는 매크로## 데이터를 다루다보면 빈 행은 껄끄러운 존재다. 특히 필터를 거는 경우에는 더더욱 그렇다.## 회사 일을 하면서 가장 많이 쓰는 매크로 중 하나이다. VBA Code Option Explicit Sub duplicate_headrow() Dim myItem Dim mySheet As Worksheet Dim i As Long, lastNum As Long Dim myCol As String Set mySheet = Sheets(1) '대상시트 설정(첫 번째 시트) myCol = "A" '빈행을 채울 열 번호(A열) With mySheet.UsedRange lastNum = .Row + .Rows.Coun..

VBA Macro/VBA Excel 2017.11.16

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

매크로 설명 첫 번째 시트 "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

[엑셀] XML 파싱하기 #2 - 필요한 데이터만 잘라내기 (split 함수)

## XML 형식으로 이루어진 텍스트에서 필요한 데이터만 잘라내기 위해 VBA Split 함수를 사용한다.Split 함수는 특정 문자열에서 "구분자"를 통해 나눠지는 각 문자열을 "배열로" 반환한다.Split 함수를 엑셀의 SUM 함수처럼 자유자재로 쓴다면(그정도로 써야한다) 문자열을 처리하는 데 있어서 활용성이 매우 높은 함수이다. ## Split 함수 구문 Split 함수의 구문은 다음과 같다. Split(Expression, [Delimiter], [Limit], [Compare]) Expression은 텍스트로써, 필수요소이다. Delimiter는 구분자로써, 선택요소이다. 생략하면 공백(" ")이 기본값이다. Limit은 반환할 문자열 길이이다. 생략하면 기본값은 -1로 전체 문자열을 반환한다...

VBA Macro/VBA Excel 2017.11.11

[엑셀/파워포인트] 지식의 보고, VBA 도움말 및 가이드 (파일)

## VBA2010 Guide VBA에 관한 매뉴얼이다. 게다가 한글화되어 있다. 상수, 날짜 형식, 지시문, 이벤트, 함수, 그룹, 키워드, 메서드, 개체, 연산자, 속성, 문 필요한 VBA 지식의 '운'을 띄울 수 있는 가장 강력한 교재라고 생각한다. ## Excel/PowerPoint 2013 Developer Documentation 엑셀과 파워포인트 2013의 개체모델, 간략한 코드 예제를 제공한다. 별도의 강의서적이 필요없을 정도로 풍부하다. (MS가 설치된 환경이라면 chm 파일을 검색하는 것만으로도 쉽게 구할 수 있다.) 정보제공 차원에서.. VBA Guide.chm 실행 화면

VBA Macro/VBA Excel 2017.10.27

[엑셀] 자주 사용하는/유용한 VBA 코드 정리

## 자주 사용하는 VBA 코드 정리 VBA Code Sub useful_code() last_cell_num = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row '마지막 셀의 행번호 찾기 'A 열 중간에 행이 비어 있어도 가장 마지막 행번호를 찾는다. '워크시트의 A 열 가장 아래쪽 끝에서 Ctrl + ↑를 한 것과 동일하다. Set myRng = Sheets("Sheet1").Cells(1,"A").CurrentRegion 'myRng를 A1 셀과 인접한 비어있지 않은 모든 셀의 Range 객체로 반환한다. 'A1 셀에서 Ctrl + A를 실행한 것과 동일하다. Dim OneArray(10) Dim MyArray(1 To 10, 5 To 15, 10 T..

VBA Macro 2017.10.27

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

여러 단어들에 포함된 키워드를 뽑아내는 매크로이다.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

파워포인트 그림 크기 일괄 변경 매크로 #1

매크로 설명 파워포인트 이미지 속성 일괄 변경 매크로이다. 모든 슬라이드의 삽입 이미지만 따로 크기를 변경해준다. 그림의 가로/세로 비율이 중요하다면 LockAspectRatio 속성을 msoTrue로 잡아주어야 한다. 매크로 실행 동영상(실행방법 포함) VBA Code Option Explicit Dim i As Long Dim pic As Shape Dim last_slide As Slide Sub pic_change() For i = 1 To ActivePresentation.Slides.Count For Each pic In ActivePresentation.Slides(i).Shapes If pic.Type = msoPicture Then '그림 파일이면 With pic .LockAspectRa..

파워포인트 슬라이드 번호 삽입 매크로

슬라이드 바닥글을 활용하여 페이지번호를 삽입하는 기능이 있지만, 첫째 슬라이드가 아닌 임의의 슬라이드에서 임의의 번호로 시작하는 기능은 없다. 더욱이 슬라이드 마스터가 익숙하지 않은 사람이라면 헷갈리기 쉽다. 이 매크로는 슬라이드 페이지 번호를 자동으로 삽입해주는 매크로이다. 번호의 서식은 자유로이 변경할 수 있고, 빈 슬라이드를 간지로 쓰는 경우에는 레이아웃 인덱스를 지정해서 번호가 붙는것을 방지할 수 있다. VBA Code Option Explicit Dim i As Long, cnt As Long Dim sld_height As Long, sld_width As Long Dim mySlide As Slide, myShp As Shape Dim page_style As String Sub pptx_p..