• 최초 작성일: 2008-11-23
  • 최종 수정일: 2008-11-27
  • 조회수: 57,259 회
  • 작성자: 엑셀러 권현욱
  • 강의 제목: 추가 기능(Add-in) 파일 만들기

엑셀러 권현욱

들어가기 전에 ㅡ 진보와 보수

가장 중요한 가치관을 꼽으라면 대체로 자유, 평등, 박애(사랑)의 세 가지를 들곤 한다. 이러한 가치들 사이에 충돌이 일어났을 때, 자유를 더 옹호하는 사람들은 시장 기능을 중시하는 경향이 있고, 평등과 박애를 더 중요시하는 사람들은 정부 개입을 중시하는 경향이 있다.

'보수주의'는 흔히 기존의 것을 고집하는 '수구주의자'라는 오해를 받지만, 경제(학)적인 관점에서 볼 때, 보수주의자들은 시장기능을 중시하는 사람들, 형평성보다는 자유를 더 중요하게 여기는 사람들을 말한다. 반면 진보주의자들은 정부 개입을 중시하고 자유보다 형평과 박애를 더 중요하게 여기는 사람들이라 할 수 있다.

진보와 보수의 싸움은 어느 시대나 있게 마련이다. 평등을 지향하는 진보는 경제성장을 희생시키는 비용을 초래하기 십상이다. 자유시장경제의 효율성을 중시하는 보수는 불평등과 양극화를 심화시키는 부작용을 감수할 수 밖에 없다. 그렇다면 국가가 어떤 정책노선을 추구하는 것이 국민의 삶의 질 측면에서 바람직한 것일까.

"나는 상대적으로 평등한 사회가 존재할 수 있다고 믿는다. 이를 위해서는 극심한 빈부격차를 제한하는 제도적 장치가 필요하다고 생각한다. 나는 민주주의와 시민의 자유, 그리고 법치를 믿는다. 그래서 나는 진보주의자이며 나는 그것이 자랑스럽다."

- 미래를 말하다, 폴 크루그먼

선진사회(혹은 우리가 바라는 어떤 것이든)는 '자연스럽게 다가오는 것'이 아니라 구성원들의 '의도적인 노력을 통해 만들어 가는 것'임을 깨닫게 된다.

한 때 탐독했던 폴 크루그먼의 글을 보며 몇자 끄적여 보았습니다. 겨울을 재촉하는 비가 내립니다.



추가 기능 파일이란 무엇인가

추가 기능 파일이란 '추가'라는 단어를 통해 짐작할 수 있는 것처럼 어딘가에 붙어서(add-in) 뭔가 추가적인 기능(functionalities)을 제공하는 파일입니다. '애드인 파일'이라고도 부릅니다. 가장 널리 알려진 추가 기능 파일 중 하나가 엑셀의 '분석 도구'입니다. 이것은 엑셀에 기본적으로 내장 built-in되어 있는 것은 아니지만 통계나 분석 능력 향상을 위해 추가적으로 제공됩니다.

로드 중...

추가 기능 대화상자

애드인 파일(*.xlam)이 일반적인 Excel 매크로 사용 통합 문서(*.xlsm) 파일과 다른 점은 대략 다음과 같습니다.

  • ThisWorkbook 오브젝트의 IsAddin 프로퍼티값이 True이다.
  • 적어도 하나 이상의 워크시트가 포함되어 있지만 [보기] 탭 - [창] 그룹 - [숨기기 취소] 명령을 통해 숨겨진 시트를 표시할 수 없다.
  • 애드인 파일에 있는 프로시저는 [매크로] 대화상자에 나타나지 않는다.
  • [추가 기능] 대화상자를 사용하여 설치/제거한다(위 그림).

왜 사용하는가

그렇다면 애드인 파일은 어떤 좋은 점이 있기에 사용하는 것일까요? 이런 것 없이도 지금까지 충분히 잘 살아왔고 앞으로도 그럴 것 같은데 말이지요.

(1) 자신이 만든 파일을 다른 사람에게 배포하거나 할 때 소스 코드나 워크시트의 내용에 접근할 수 없도록 할 수 있습니다.

(2) 다른 파일에서도 쉽게 사용할 수 있습니다. 일반적으로 다른 파일에 있는 함수를 사용하려면 함수의 이름 앞에 다음과 같이 파일의 이름을 함께 적어주어야 합니다.

=Book1.xlsm!FINDFOLDER("C:\MyXls")

하지만 추가 기능 파일이 인스톨 된 상태라면 다음과 같이 간단히 표현할 수 있습니다.

=FINDFOLDER("C:\MyXls")

(3) [추가 기능] 대화상자를 통해 설치/제거가 간단하게 이루어지므로 불필요한 자원의 낭비를 막을 수 있습니다.

(4) 추가 기능 파일로 등록되면 엑셀이 시작될 때 자동으로 실행되므로 사용자는 파일이 어디에 있는지 신경쓸 필요도 없으며, 어느 파일에서든 사용할 수 있습니다.

어떻게 만드는가

기본적으로 VBA가 포함된 파일이라면 어떤 워크북 파일이든 애드인 파일로 전환할 수 있습니다(VBA가 포함되지 않은 파일은 굳이 애드인 파일로 만들 이유는 없겠죠?). 애드인 파일을 만드는 순서는 다음과 같습니다.

(1) 애드인 파일로 변환 convert할 파일을 만듭니다(*.xlsm 형태). 물론 이상 없이 제대로 작동해야겠지요?

(2) [개발 도구] 탭 - [코드] 그룹 - [Visual Basic] 명령을 클릭(또는 Alt + F11키 사용)하여 VB Editor를 실행합니다. VB Editor 왼쪽의 프로젝트 창에서 애드인 파일로 변환할 파일을 선택하고 [도구] - [VBAProject 속성] 메뉴를 선택합니다.

로드 중...

(3) [VBAProject] 대화상자의 [보호] 탭을 선택하고 암호를 지정합니다. 암호 지정은 필수 사항은 아니지만 해 두는 게 좋겠습니다.

로드 중...

(4) [파일] - [복사본 저장] 메뉴를 선택하고 파일 형식을 [Microsoft Office Excel 추가 기능(*.xlam)]으로 지정합니다. 이렇게 하면 원래 파일(*.xlsm)과 별도로 애드인 파일이 생성됩니다.

(5) 원본 파일을 닫고 [파일] - [옵션] 명령을 클릭합니다. [Excel 옵션] 대화상자 왼쪽에 있는 [추가 기능]을 선택하고 [이동] 버튼을 누릅니다.

로드 중...

(6) [추가 기능] 대화상자에서 [찾아보기] 버튼을 클릭하고 앞에서 작성한 추가 기능 파일이 있는 폴더로 가서 파일을 지정합니다.

로드 중...

추가 기능 파일은 아무 폴더에나 저장할 수 있지만 기본값으로 다음 폴더에 저장됩니다.

C:\Documents and Settings\\Application Data\Microsoft\Addins

참고로, [추가 기능] 대화상자에서 [찾아보기] 버튼을 클릭하면 세 가지 확장자를 가진 파일을 추가 기능 파일로 지정할 수 있음을 알 수 있습니다.

  • *.xlam: 엑셀 2007 애드인 파일(*.xlsm 파일로부터 생성)
  • *.xla: 엑셀 2007 이전 버전의 애드인 파일(*.xls 파일로부터 생성)
  • *.xll: 컴파일된 독립실행(standalone)형 DLL 파일
로드 중...

추가 기능 파일 수정하기

(1) 애드인 파일을 수정하려면 VB Editor에서 해당 프로젝트, 즉 파일을 더블 클릭하여 해당 파일을 엽니다. 만약 암호 지정이 되어있다면 암호를 입력하여 암호 해제를 해야겠죠.

(2) [속성] 창에서 [IsAddIn] 속성을 'False'로 변경하고 애드인 파일을 수정합니다.

(3) 수정 작업을 마치고 나면 파일을 저장하기 전에 'IsAddIs' 속성을 다시 'True'로 변경합니다. 만약 이 속성을 True로 하지 않고 False로 그대로 남겨두면 어떤 일이 생길까요? 그것은... 직접 한번 해 보시기 바랍니다. (^^)

참고로, 현재 PC에 어떤 애드인 파일이 설치되어 있는지 확인해 볼까요? 다음 코드를 복사하여 실행시켜 보세요.

Sub ShowAddInList()
    Dim addList As AddIn
    Dim lngRow As Long
    Dim tblTable As ListObject

    Worksheets.Add after:=ActiveSheet
    Range("A1:D1") = Array("제목", "설명", "상태", "전체 경로")
    lngRow = 2

    For Each addList In AddIns
        With addList
            Cells(lngRow, 1) = .Name
            Cells(lngRow, 2) = .Title
            Cells(lngRow, 3) = .Installed
            Cells(lngRow, 4) = .Path
        End With
        lngRow = lngRow + 1
    Next addList

    ActiveSheet.ListObjects.Add
    ActiveSheet.ListObjects(1).TableStyle = "TableStyleMedium7"
    Cells.EntireColumn.AutoFit
End Sub

CODE

이 프로시저를 실행하면 현재 워크시트 뒤에 새로운 워크시트가 하나 삽입되면서 다음과 같은 결과가 나타납니다.

로드 중...

설치되어 있는 추가 기능 파일 리스트

맨 위에 있는 PowerTools.xla 파일을 보니 또 의무감이 생기는군요. 빨랑 버전업해야 하는데 몇 년째 v3.1 버전에 머물고 있네요. 비슷한 시기에 나온 엑셀 2002는 2007로 업그레이드 되었는데 말이지요. (^^;)