엑셀 2007의 리본 만들기

마이크로소프트 오피스 2007은 이전 버전과 단절되었다고 해도 좋을 만큼 사용자 인터페이스(UI)가 크게 달라졌다. 마이크로소프트에서 20년 넘게 사용했던 윈도우의 UI 표준인 메뉴와 툴바를 없애고 “리본”이라는 새로운 UI 요소로 대체된 것이다. 리본은 탭, 그룹, 버튼 등으로 위계화 되어 있는데 이를 사용자가 임의로 구조화할 수 있다는 점이 또한 큰 매력이다.

얼마 전에 업무 때문에 엑셀의 VBA 프로젝트를 만들 기회를 가졌는데, 의외로 새로운 UI인 리본을 다루는 자료나 책을 접하기 어려웠다. 아직까지 국내서적에서 제대로 다루고 있지 않은, 엑셀의 리본을 다루는 방법에 대한 기본 자료를 안내한다.

1. 리본 만들기 기초

Visual Basic에서 RibbonX 사용
마이크로소프트 개발자 네트워크(MSDN) 매거진에서 안내하는 리본 만들기

Office Fluent User Interface Developer Center
MSDN에서 안내하는 2007 Office Fluent Ribbon 만들기

2. 리본 만들기 공구

Office 2007 Custom UI Editor
MSDN에서 안내하는 리본 만들기 방법은 번거로운 작업과정을 거쳐야 한다. 이 공구는 그 번거로운 과정을 프로그램으로 대체했다. 단점은 한글 입력이 안된다는 점이다.

Office 2007 Ribbon Editor
위의 공구와 같은 작업을 한다. 한글 입력이 다소 불편하나마 가능하다.

3. 리본 아이콘과 컨트롤 IDs

2007 Office System Add-In: Icons Gallery
리본은 명령어와 아이콘으로 구성되어 있는데, 각 명령어에 해당하는 아이콘을 보여주는 엑셀 파일이다. 이 파일을 열면 “개발 도구” 탭에 아이콘 갤러리 그룹이 생긴다.

2007 Office System Document: Lists of Control IDs
리본을 사용하는 각종 오피스 프로그램에 내장되어 있는 컨트롤의 ID 목록이다. 이 목록을 알아야 리본을 만들 수 있다.

4. 리본과 추가기능

사용자가 만든 리본을 어느 한 파일에만 적용할 것이 아니라, 엑셀 프로그램 자체에 내장하고 싶다면 추가기능(AddIns)으로 설치하면 된다. 오피스 2007은 추가기능 설치와 관련하여 이전 버전과 많이 다르다. 이에 관해서는 엑셀 2007의 VBA 관련 서적을 참고해야 한다.

5. VBA 관련 서적

국내에서 출간된 VBA 관련 서적은 여러 종이 있으나, 대부분 프로그래밍 관점이 아닌 무작정 따라하기 식의 단순하고 산만한 내용으로 채워져 있다. 이런 서적들은 VBA의 개념적인 접근에 도움이 되지 않는다. 사람마다 관련 책의 가치가 상이하겠지만, 나같은 경우에는 개념이 명확하고 서술이 간결하고 논리적인 책이 도움이 되며, 무작정 따라하기 식의 책은 오히려 혼미한 느낌만 든다.

국내서적 중에는 John Walkenbach의 «열혈강의 Excel 2000 Power Programming with VBA»(프리렉 2004)만이 유일하게 VBA를 프로그래밍 관점으로 접근한 책으로 평가될 수 있다. 서명에서 알 수 있듯 엑셀 2000 버전에 관한 책이어서 시의성이 떨어지는 게 흠이긴 하지만, 나로서는 VBA를 공부할 때 유일하게 참고할 만한 자료였다.


국내서적 중에서 유일하게 프로그래밍 관점으로 VBA에 접근한 책이라고 할 수 있으나, 엑셀 2000을 기준으로 한 내용이어서 시의성이 떨어지는 단점이 있다.

시의성을 보완하려면 같은 저자의 최신판인 «Excel 2007 Power Programming with VBA»(물론 번역되지 않았음)을 참고하면 될 것이다. «RibbonX: Customizing the Office 2007 Ribbon»(Wiley Publishing 2008) 같은 리본만을 전문적으로 다룬 서적도 있다. 오피스 2010 베타에서는 사용자가 리본을 조작하는 기본기능을 내장하고 있지만, VBA와 리본을 연계시키려면 리본 만들기를 기본적으로 익혀두어야 한다.

Leave a Reply

Your email address will not be published. Required fields are marked *