엑셀에서 문서를 저장하면 이문서에는 매크로, Activex 컨트롤 또는 웹 구성요소가 있습니다 msg가 발생되는 경우가 있습니다.

[방법]
메뉴[도구]-[옵션]-[보안]-개인 정보 옵션의 "저장 시 파일 속성의 개인 정보 제거" 해제하면 정상적으로 저장됩니다.

Macro(매크로)란?

일련의 명령들을 한 명령처럼 사용할 수 있게 저장한 프로그램으로서, 자주 수행하는 복잡한 작업을 자동화하여 불필요한 수고를 줄일 수 있습니다. 이 매크로는 매크로 기록기에 의해서 기록이 됩니다. 그러나 이렇게 기록되는 매크로는 많은 한계를 가지고 있으므로 이를 VBA(Visual Basic for Applications)를 사용함으로써 보강하고 날개를 달아 주게 됩니다.

1. 매크로란?
자동화란 앞에서도 살펴보았지만, 참으로 좋습니다. 편하구요. 아주 아주 내 말을 잘 듣는 놈이지요. 그러나 잘 시켜야 말을 잘 듣지요. 무작정 시키면 반항(주로 에러 메시지)을 할지도 모르구요. 어떤때는 컴퓨터를 다시 부팅시켜야 할 때도 있겠지만, 그래도 괜찮지요. 컴퓨터는 고장이 안나고, 고장이 난다면 다시 사면 되니까요. 중요한 것은 여러분의 정보화 마인드와 여러분의 발전 가능성 그리고 인간성...

(1) 엑셀에 다음과 같이 작성를 했습니다.

보다시피 왼쪽의 배치는 왼쪽아래에 위치에 있기에 좀 정렬이 필요합니다. (물론 이렇게 미적으로 일부러 배칠ㄹ 할 수도 있겠지만...) 그런데 이것을 오른쪽에 있는 것 처럼 셀서식을 적용하기 위해서는 아래와 같은 과정을 거쳐야 비로소 가능합니다. 일단 몇 번의 키를 누를 수밖에 없는지를 헤아려 볼까요?

1) 우선 셀서식을 적용할 범위를 선택합니다.

2) 셀세식 대화 상자를 호출합니다. 가장 빠른 방법이 키보드로 Ctrl + 1을 누르는 것입니다.

3) 이어서 맞춤 탭을 누릅니다. 운 좋게도 종전에 '맞춤' 작업을 했다면 몰라도 ...

4) 이어서 '가로' - '가운데'를 클릭합니다.

5) 그리고 '세로' - '가운데'를 클릭합니다.

6) 마지막으로 [확인] 버튼을 클릭합니다.

이렇게 최 단거리로 달려와도 6번의 클릭이나 입력이 필요합니다.

그럼 지금부터 매크로의 대 역사를 창조하겠습니다. 잘 따라서 해보세요. 그럼 출발합니다.

(2) 매크로를 정의하겠습니다.

1) 우선 원하는 범위를 선택합니다.

.물론 범위를 선택하는 방법은 아시겠죠? 그래도 확인해볼까요? 아는 길도 물어간다고 하던데...

<범위를 선택하는 여러 방법>

(ㄱ) 마우스로 왼쪽버튼을 누르고 드래그한다. 이 때 마우스 포인터는 이 모양일 때입니다.

(ㄴ) 키보드의 이동키(화살표키, home, end, PgUp, PgDn 등)를 이용해서 범위의 시작지점(좌측 맨위 모서리가 일반적임, 그러나 아니어도 됨)으로 이동합니다. 이어서 키보드의 Shift키를 누른 채로 다시 이동키로 이동합니다. 그러면 범위가 잡힙니다.

(ㄷ) 키보드와 마우스를 조합해서 범위를 선택하는 방법으로 일단 시작 지점으로 이동합니다. 그리고 마지막 지점을 클릭, 아~ 잠깐... 그냥 클릭이 아니고, Shift키를 누르고 클릭하세요. 원리는 똑같습니다. 그러면... 많은 분량의 범위도 쉽게 됩니다.

(ㄹ) 전체 범위는 Ctrl + A 또는 전체선택 범위를 클릭합니다.

(ㅁ) 떨어진 블록은 Ctrl 키도 함께 이용하면 됩니다.

(ㅂ) 블록을 잡을 때, home, end, PgUp, PgDn 키를 적절히 이용하면 빠르고 편안하게 됩니다. 이것이 바로 컴의 실력입니다. 남들이 기어갈 때, 여러분은 비행기를 타고 부산에 가서 업무를 보고, 골프를 즐기세요. 남들이 이제서 수원쯤에 와 있을 때 말입니다.

2) 매크로 기록 버튼을 클릭합니다.




물론 좌측의 Visual Basic 도구모음이 화면에 없으면 메뉴의 [보기]-[도구 모음]-[Visual Basic]을 차례로 클릭합니다.


















3) 그러면 좌측과 같은 매크로 기록 대화 상자가 나옵니다.

여기에 결정해야 하는 사항이 3가지가 있습니다.

(ㄱ) 매크로의 이름 : 다른 매크로와 구분하기 위한 이름입니다. 실행시키거나 다른 컨트롤과 연결시킬 때 아주 중요한 역할을 합니다. 이름만 보아도 어떤 기능을 하는지 알도록 지어주는 것이 좋겠습니다. 홈지기은 이번 매크로의 이름은 'h_v_center'라고 지었습니다. h : horizonetal(가로), v : vertical(세로) 가운데란 뜻입니다.

(ㄴ) 바로 가키 키 : 이게 뭐냐구요? 실행시킬 때 다시 이야기가 되겠지만, 말 그대로 단축키(예, 저장하기 Ctrl + s)입니다. 여기서는 이 매크로를 실행시킬 때, 단축키 Ctrl + c를 눌러도 되도록 한 것입니다. 아~ 이미 복사하기(Ctrl + c)가 있네요. 그래도 사용자가 정해준 매크로 단축키가 우선입니다. 그래서 단축키를 지을 때는 신중(?)한 것이 좋겠지요. 물론 나중에 얼마든지 바꿔줄 수 있지만 말입니다.

(ㄷ) 매크로 저장 위치 : 이것은 매크로가 통하는 범위가 어디까지인가를 정해주는 것입니다. 위는 '현재 통합 문서'에 한정을 시켰습니다. 이 외에 '개인용 매크로 통합문서', '새 통합문서'가 있습니다.

그리고 설명은 나중에 자신이 보아도 이것이 무슨 매크로인지 잊는 경우가 있게 됩니다. 이런 경우를 대비해서 미리 설명을 붙여 두는 것입니다. 자세한 설명을 붙이는 습관을 기르면 좋습니다.

위와 같이 설정하고 확인 버튼을 클릭합니다.

4) 그러면 좌측 그림과 같이 매크로 중지 버튼이 생깁니다. 정의가 끝나면 이 버튼을 누르면 됩니다.


5) 지금부터가 중요합니다. 그러면 지금부터 매크로로 다음부터 실행시킬 동작을 그대로 녹음시키겠습니다.

  • Ctrl + 1을 누릅니다.
  • 맞춤 탭 클릭합니다.
  • 가로 - '가운데' 선택합니다.
  • 세로 - '가운데' 선택합니다.
  • [확인] 버튼을 클릭합니다.
  • 매크로 중지 버튼을 클릭합니다.

6) 비주얼 베이식 에디터 아이콘을 클릭합니다. 그러면 아래와 같이 우리가 한 모든 행동이 여기에 기록이 되어 있습니다.



Sub h_v_center()

' h_v_center Macro

' OOO이(가) 2008-12-30에 기록한 매크로

' 바로 가기 키: Ctrl+c

    With Selection

        .HorizontalAlignment = xlCenter

        .VerticalAlignment = xlCenter

        .WrapText = False

        .Orientation = 0

        .AddIndent = False

        .ShrinkToFit = False

        .MergeCells = False

    End With

End Sub

위의 빨강색 글씨의 부분은 매크로 기록기가 알아서 기록은 했습니다만, 여기서는 False 또는 0의 값이 설정되어 있으므로 아무 기능도 하지 않으므로 지워도 관계 없습니다.

7) 정의한 매크로의 실행 방법 연구

매크로를 실행시키는 방법에는 여러 가지가 있습니다. 차근 차근 살펴볼까요.

(ㄱ) 단축키를 이용하는 방법

정의할 때, 설정한 단축키를 누르면 실행이 됩니다. 여러분께서도 이미 우리가 만든 '가로세로중앙'(h_v_center) 매크로를 Ctrl + c를 눌러 실행시켜 보세요. 위의 과정을 잘 따라서 했다면, 잘 실행이 되리라 믿습니다. 만약 실행이 제대로 되지 않는다면, 다시한번 정의를 해보세요.



(ㄴ) '매크로 실행' 아이콘을 이용하는 방법

Visual Basic 도구 모음의 '매크로 실행'아이콘을 클릭해 보십시오.

좌측과 같은 대화 상자가 나옵니다. 여기서 먼저 매크로의 이름을 클릭하고, 이어서 실행버튼을 클릭하면 실행이 됩니다.

나온김에 다른 구성요소에 대해서도 잠깐 알아보겠습니다.

취소 : 대화 상자의 호출을 취소하여 화면에서 없애는 버튼입니다.

한 단계씩 코드 실행 : 매크로의 실행을 그 실행 결과를 확인하면서 한 단계씩 실행시키는 버튼입니다.

편집 : 이미 작성된 매크로를 Visual Basic Editor로 열어 편집할 수 있게 해 줍니다.

만들기 : 새로 만들 수 있는 창이 나옵니다.

삭제 : 이미 작성된 매크로를 삭제합니다.

옵션 : 이미 작성할 때, 정의했던 바로가기 키나 설명을 바꿀 수 있습니다.

매크로 위치 : 매크로가 기록되어 있는 위치를 지정하여 매크로를 열고/실행시키고/편집하는 등의 작업을 할 수 있습니다.






(ㄷ) 도구모음으로 등록을 하는 방법

우선 메뉴의 [보기]-[도구 모음]-[사용자 정의]를 순서대로 클릭합니다.

















사용자 정의 대화 상자에서 먼저 '명령 탭을 클릭합니다. 이어서 범주에서 '매크로'를 클릭하고 오른쪽의 명령에서 '사용자 정의 단추'를 드래그하여 도구모음의 원하는 부분으로 드래그 합니다.

그러면 다음과 같은 기본 아이콘( )이 도구모음에 생깁니다.









이 도구모음의 새로 생긴 단추(스마일)에서 마우스 오른쪽 버튼을 누르면 좌측 그림과 같이 단축메뉴가 펼쳐집니다. 여기서 일단 '단추 모양을 변경'을 클릭해서 천칭 모양(우리가 등록하고자 하는 h_v_center 매크로가 가로세로 가운데이니까... )을 클릭합니다.






그 결과는 그림 과 같습니다.






계속해서 '매크로 지정'단추를 클릭해서 매크로와 단추를 연결시킵니다.

그 방법은 먼저 연결시키기를 원하는 매크로 이름을 클릭하고 [확인]버튼을 클릭하면 됩니다.

그리고 도구모음 사용자 정의 대화 상자를 닫으면 됩니다.


(ㄹ) 사용자 정의 메뉴에 등록하는 방법

엑셀은 메뉴도 사용자가 마음대로 편집할 수 있습니다. 그 방법을 자세히 살펴보겠습니다.

① 먼저 (ㄷ)의 방법과 마찬가지로 [보기]-[도구모음]-[사용자 정의]를 순서대로 클릭합니다.

② 이어서 '명령'탭을 클릭하고 범주에서 '새 메뉴'를 클릭합니다. 그리고 오른쪽의 명령에서 '새 메뉴'를 드래그하여 위의 메뉴표시줄까지 옵니다.

그림처럼 '새 메뉴'가 메뉴에 생깁니다.












④ 다시 사용자 정의 대화 상자의 범주에서 '매크로'를 오른쪽 명령에서 '사용자 정의 메뉴 항목'을 드래그하여 새로 만든 메뉴 항목의 하위 메뉴로 만듭니다.

그 결과은 아래 그림과 같습니다.







⑤ 이어서 새메뉴에서 마우스 오른쪽 버튼을 클릭하여 그 이름을 '박치동식 정렬'이라고 바꾸겠습니다.

그 우측에 있는 &P는 메뉴를 호출할 때 Alt키를 누르고 P키를 누르면 이 메뉴가 활성화 되도록 하겠다는 일종의 단축키 역할을 하는 것입니다.














⑥ '사용자 정의 메뉴 항목'에서도 이름을 '가로세로정렬(&c)'로 설정합니다.

⑦ 이제는 마지막으로 가장 중요한 과정이 남았습니다. 즉 메뉴에 실행 매크로를 지정하는 방법입니다. 그러나 이는 위에서 이미 공부를 한 내용입니다. 생각이 나시죠?

일단 좌측의 그림의 맨 아래에 있는 '매크로 지정'메뉴를 클릭합니다. 이어서...

짜자잔... 어때요 근사하게 메뉴에도 내이름이 기록이 되었군요.

물론 여러분도 '박치동식 정렬'이라고 넣지는 않으셨죠? 여러분은 여러분의 이름을 넣어서 그럴 듯하게 메뉴의 이름을 정해 보세요.



(ㅁ) 워크시트에 단추를 그려서 실행시키기

이미 만들 매크로(h_v_center)를 워크시트의 셀에 명령버튼을 그려서 실행시켜 보도록 하겠습니다.

① 아래의 그림과 같이 양식으로 버튼을 그리고자 마우스를 드래그하다가 왼쪽 버튼을 놓는 순간 '매크로 지정' 대화 상자가 나옵니다. 여기서 원하는 매크로를 클릭하고 [확인] 버튼을 클릭합니다.

② 그리고 버튼의 레이블(이름표)를 '가로-세로 가운데 맞춤'이라고 고치고 서식('빨강색, 굵게')도 각자의 취향에 맞게 지정을 합니다. 그러면 끝입니다.

(ㅂ) 워크시트에 버튼 이 외의 다른 객체로 매크로 연결하기

버튼보다도 다른 여러 가지 그리기 개체를 다양하게 엑셀은 제공합니다. 그럼 몇가지 해볼까요.

① 일단 원하는 곳에 적당한 도형을 그립니다. 엑셀에서는 도구 모음을 원하는 곳으로 얼마든지 옮길 수 있습니다. 그러나 기본적으로 그리기 도구모음은 아래에 위치해 있습니다. 여러분의 엑셀도 그렇게 되었다고 생각하고 좌측 그림처럼 [도형]-[기본 도형]-[모서리가 둥근 직사각형]을 클릭합니다. 그런 후에 워크시트로 마우스를 옮기면 마우스 포인터가 평소와는 다른 이런 모양을 합니다. 원하는 곳에 드래그하여 그리면 모서리가 둥근 직사각형을 그릴 수 있게 됩니다.

② 드래그하다 적당한 크기가 되었을 때 놓으면, 좌측의 그림과 같이 됩니다.



③ 좌측의 그림과 같이 채우기 효과 (질감-코르크)을 선택하고, '텍스트 추가'를 클릭하여 그림과 같이 '가로-세로 가운데 정렬'이라고 넣고 글자에 대해서도 서식('노랑, 굴게')를 지정한다.

그림자 설정 을 클릭하여 그림자효과를 취향에 맞게 넣습니다.

▣ 일단 텍스트를 추가하면 메뉴에는 '텍스트 편집'으로 메뉴의 문구가 바뀝니다. 이런 곳에서도 사용자 배려를 하고 있습니다. 결론적으로 엑셀은 '상식이 통하는 프로그램인 것 같습니다.'



④ 이어서 위의 그림과 같이 '매크로 지정'을 클릭하여 위에서 이미 배운 바와 같이 매크로를 지정해 주면 됩니다.

⑤ 그 결과 좌측 그림과 같이 매크로가 지정되어 언제든지 클릭하면 그 기능을 하게 됩니다.

'♡ 월급쟁이인생 > P사' 카테고리의 다른 글

[엑셀]양식  (0) 2008.12.30
[엑셀]매크로 활용  (0) 2008.12.30
[엑셀]매크로 기초  (0) 2008.12.30
[엑셀]목표값 찾기와 해찾기  (0) 2008.12.30
[엑셀] 카메라 이용하기  (0) 2008.12.22
[엑셀]승수 구하기  (0) 2008.12.18

※ Tip - Visual Basic Editor 실행하기
Alt+F11 을 눌러도 Visual Basic Editor를 실행할 수 있습니다.

 ※ 참고 - 매크로가 포함된 통합문서를 열 때
매크로가 포함된 통합문서를 열때는 다음과 같이 확인 메시지가 나타납니다. 이것은 매크로에 바이러스가 감염되었을 수 있다는 경고를 하는 것입니다. (엑셀 매크로 바이러스에 대해서는 메뉴의 Tip을 참고하세요)


'열기(매크로 제외)'를 클릭하면 매크로를 제외하고 통합문서를 열게 됩니다. 이 경우 바이러스 감염의 위험은 없지만 매크로로 작성된 기능을 사용하지 못하게 됩니다.


Sub 저장()

    ActiveWorkbook.Save

    MsgBox '저장이 완료되었습니다.'

End Sub


Sub 저장_1()

    ActiveWorkbook.Save

    메시지 = '저장이 완료되었습니다.'

    스타일 = vbOKOnly + vbInformation + vbDefaultButton1

    타이틀 = '저장완료 알림'

    RESPONSE = MsgBox(메시지, 스타일, 타이틀)

End Sub


Sub 저장_2()

    메시지 = '저장을 하시겠습니까?'

    스타일 = vbYesNo + vbQuestion + vbDefaultButton1

    타이틀 = '저장확인'

    RESPONSE = MsgBox(메시지, 스타일, 타이틀)

    If RESPONSE = vbNo Then Exit Sub

    ActiveWorkbook.Save

    MsgBox '저장이 완료되었습니다.'

End Sub

Sub 저장_3()

    메시지 = '화일명을 입력하십시오.'

    RESPONSE = Application.InputBox(PROMPT:=메시지, Title:='저장하기', _

               Type:=2)

    If RESPONSE = False Then Exit Sub

    ActiveWorkbook.SaveAs FileName:=RESPONSE

    MsgBox '저장이 완료되었습니다.'

End Sub


Sub 저장_4()

    ActiveWorkbook.Save

    저장폼.Show

End Sub

'♡ 월급쟁이인생 > P사' 카테고리의 다른 글

[엑셀]날짜계산에 편리한 DATEDIF 함수  (0) 2008.12.30
[엑셀]양식  (0) 2008.12.30
[엑셀]매크로 활용  (0) 2008.12.30
[엑셀]매크로 기초  (0) 2008.12.30
[엑셀]목표값 찾기와 해찾기  (0) 2008.12.30
[엑셀] 카메라 이용하기  (0) 2008.12.22