이전 포스팅에는 매크로를 기록하는 방법에 대해서 설명했다. 그 예로 글꼴 크기를 15pt로 변경하는 매크로를 작성하였다. 이번 포스팅의 주제는 다른 것은 전혀 변하지 않고 글꼴 크기만 변하는 매크로를 만드는 것이다. 미리 얘기하자면 오늘은 직접 VBA 코드를 수정해볼 것이다.

엑셀 버전 : MS Excel 2013

이전 포스팅의 매크로

이전 시간 매크로의 목적을 다시 한번 생각해보면 '글꼴 크기를 15pt로 변경' 하는 것이었다. 이전 시간 매크로를 다시 기록하고 테스트를 해보자. 이전 시간 매크로 기록 순서는 아래와 같다.

  1. A3셀에 "Hi Hello"라고 입력한다.
  2. 매크로 기록 시작
  3. 글자 크기를 15pt 로 변경
  4. 매크로 기록 중지

기록이 제대로 되었다면 실행하는 셀의 위치에 상관없이 해당 셀의 글꼴 크기가 15pt로 변경될 것이다.

문제점

과연 이 매크로는 잘 동작하는 것일까? 그런 것처럼 보이지만 사실 그렇지 않다. A5(아무 셀)에 'Hi Hello'라고 쓰고 글꼴을 '궁서'(지금과 다른 글꼴)로 바꿔보자. 그 후 A5 셀에서 매크로를 실행하여 크기를 15pt로 바꿔보자. 눈치 챘겠지만 크기는 잘 바뀌었지만 글꼴까지 바뀌었을 것이다. 왜 그럴까? 이제 코드를 확인해보자. 코드 확인방법은 VBA 첫 포스트매크로 기록 확인 을 보면 된다.

코드 확인

아래 매크로의 코드와 설명을 적었다. 일단 코드의 설명을 보고 진행하자.


Sub 매크로1()
'
' 매크로1 매크로
'

'
  With Selection.Font ' 선택된 셀의 글꼴을 조정하겠다는 뜻임.
    .Name = "맑은 고딕"  ' 글꼴을 "맑은 고딕" 으로 지정
    .Size = 15  ' 크기를 15pt 로 지정
    .Strikethrough = False  ' 취소선 미지정
    .Superscript = False  ' 위 첨자 미지정
    .Subscript = False  ' 아래 첨자 미지정
    .OutlineFont = False  ' 글꼴이 outline font 일 경우 true
    .Shadow = False  ' 그림자 미지정
    .Underline = xlUnderlineStyleNone  ' 밑줄 스타일 미지정
    .ThemeColor = xlThemeColorLight1  ' 글꼴 색 스타일 관련
    .TintAndShade = 0  ' 글꼴 색 관련
    .ThemeFont = xlThemeFontMinor  ' 
  End With
End Sub

코드를 보면 이제 좀 알 것이다. 이 매크로는 글꼴 크기 뿐 아니라 글꼴 이외의 여러 가지 것들에 대해서도 정의하고 있었다. 이제 글꼴이 '궁서'에서 원래 글꼴(이 코드에선 맑은 고딕)으로 변경된 이유를 설명할 수 있을 것이다. 우리가 매크로 기록할 땐 글꼴을 변경하는 행위를 하지 않았음에도 불구하고 VBA 매크로에는 글꼴, 취소선, 밑줄, 글꼴 색 등 다양한 정보가 함께 기록되었다.

문제 해결

이제 우리의 목적을 달성해보자. 목적을 다시 상기하자면 글꼴 크기를 15pt로 변경하는 것이다.

해결 방법은 아주 간단하다. 코드에서 .Size = 15 를 제외한 다른 코드를 삭제하면 된다. 물론 그냥 다 삭제 하면 안되고 아래 코드를 참고해서 삭제하기 바란다.

Sub 매크로1()
'
' 매크로1 매크로
'

'
  With Selection.Font
    .Size = 15  ' 크기를 15pt 로 지정 
  End With
End Sub

마무리

매크로를 기록 한 후엔 꼭 코드를 보는 습관을 기르자. 한 줄 한 줄이 어떤 의미를 갖는지 파악해두는 것이 좋다. 그래야 내가 원하는 상황에 딱 맞는 매크로를 작성할 수 있다. 많은 경우에서 매크로를 기록하고 코드 몇 줄 삭제하는 것만으로도 많은 일을 해결할 수 있다.