• 최초 작성일: 2008-08-25
  • 최종 수정일: 2008-08-25
  • 조회수: 29,114 회
  • 작성자: 엑셀러 권현욱
  • 강의 제목: 리본X 컨트롤 (3) ㅡ Image 컨트롤

엑셀러 권현욱

들어가기 전에 ㅡ 하늘 아래 새로운 것은 없다

작화증(confabulation)이라는 것이 있다고 한다. 없었던 일을 마치 있었던 것처럼 확신을 가지고 말하거나, 일어났던 일을 위장하거나 왜곡하는 것을 말한다. 키스 소여가 쓴 <그룹 지니어스>를 보면 한 사람의 천재가 위대한 발명품을 만들어냈다는 것이 얼마나 사실과 다른 것인지에 대해 알게 된다.

한 사람의 천재가 위대한 발명품을 만들어냈다는 이야기는 신화에 불과하다. 위대한 발명품은 역사를 빛낸 위대한 발명가가 아닌 여러 사람들이 모여 이루어내는 그룹 지니어스를 통해 만들어졌다.

모든 위대한 발명품들은 작은 아이디어들이 끊임없이 연결되는 과정에서 탄생된다. 처음 나온 아이디어는 대부분 작고 평범하지만 이러한 아이디어를 하나로 모으는 가운데 새로운 아이디어가 탄생하거나 기존의 아이디어가 새롭게 재해석되는 것이다. 전신? 새뮤얼 모스가 발명하지 않았다. 전구? 토마스 에디슨이 발명하지 않았다. 비행기? 라이트 형제가 발명하지 않았다.

사람들은 마치 그 아이디어를 자신이 직접 생각해 낸 것으로 생각하지만 실제로는 사회적인 관계를 통해 얻은 것이다. 통찰력을 이끌어내는 사회적/협력적 자극을 의식적으로 인지하지 못하기 때문에, 문제를 해결하는 통찰력이 어느 순간 갑자기 떠오른다는 터무니없는 믿음은 앞으로도 오랫동안 살아남을 것이다.

ㅡ <그룹 지니어스>, 키스 소여

로딩 중...

1863 | 캔버스에 유화 | 130.5 X 190cm | 파리, 오르세 미술관

에드바르드 뭉크의 <절규> 또한 마찬가지이다. '자연을 관통하는 그치지 않는 비명소리'를 들었던 기억을 바탕으로 그렸다는 이 작품은 불안과 두려움, 소외를 표현하고 있는 현대의 아이콘이라고 할 수 있다. 해골처럼 보이는 인물의 얼굴과 양손의 위치는 잉카 문명의 유적지에서 발견된 미이라에서 영감을 받은 것으로 보인다(당시 그 미이라는 파리의 트로카데로궁에 전시되고 있었다). 해골같은 인물의 오른쪽 배경에 있는 급격하게 기울어진 사선은 구스타브 캘리보트의 <발코니의 남자>에서 개념을 채용했다고 한다.

로딩 중...

1898 | 마분지에 유화 | 91 X 73.5cm | 오슬로, 내셔널 갤러리

'거장'이라는 수식어가 늘 이름 앞에 따라다니는 파블로 피카소 또한 이러한 사실로부터 자유롭지 않다. 큐비즘의 특징을 보여주는 작품의 하나인 <아비뇽의 처녀들>을 보면, 오른쪽 아래에 쪼그리고 앉아 있는 인물은 폴 세잔의 <목욕하는 여인들>의 영향을 받은 것으로 보인다. 이 작품이 보여주는 수직적 구도나 과장하게 뒤틀린 인물의 형상, 파란색과 핑크색의 주조 등은 엘 그레코로부터 많은 영향을 받았다고 한다.

작품 왼쪽에 있는 여성의 머리 위에 툭 튀어나온 손은 엘 그레코의 <묵시록적 비전>에서 왼쪽에 있는 사람의 손을 연상시킨다. 눈이 왼쪽으로 심하게 치우쳐 있는 전면의 인물의 얼굴은 고갱의 <저승사자의 눈길> 왼쪽 끝에 나오는 인물의 머리와 유사한데 이것들은 모두 고대 이집트 예술에서 영감을 받은 것이라고 한다.

왼쪽에서 두번째 인물은 미켈란젤로의 <죽어가는 노예>와 고갱이 제작한 <오비리>라는 테라코타 조상을 연상시키며, 양손을 위로 들어올린 여성의 누드와 얼굴 표정은 고야의 <옷을 벗은 마하>를 떠올리게 한다. 전체적으로 5명의 얼굴 모습은 피카소의 조국인 이베라아의 고대 조각상과 유사하다.

로딩 중...

1907 | 캔버스에 유화 | 243.9 X 233.7cm | 뉴욕, 현대미술관

그러고 보면 하늘 아래 '새로운 것'은 없다는 생각이 절로 든다. 사람들은 마치 그 아이디어를 자신이 직접 생각해 낸 것으로 생각하지만 실제로는 기존의 것을 재배치하고 자신의 생각을 조금씩 덧대어서 발전시켜 나간 것일 따름이다.

우리가 다른 사람의 발명품으로 현재와 같은 혜택을 누리듯, 우리의 지혜와 발명품은 다른 사람 또는 후세에게 도움이 되도록 준비할 일이다. 내가 거인의 어깨에 올라타 있음으로 인해 좀더 멀리 볼 수 있듯, 나 또한 다른 누군가를 위해 어깨를 빌려줄 일이다.



완성 예

할까 말까 약간 망설이고 있었는데 '탭에 이미지 컨트롤을 삽입하는 방법'에 대해 질문하신 분이 있었습니다. 업무상 피가 되고 살이 될 것... 같지는 않습니다만, 디카로 찍은 사진들을 보관해 두었다가 나만의 갤러리를 만들어 보는 것도 좋을 것 같습니다.

로딩 중...

#이모습오데로 #그때가좋았어

예제 파일을 열고 [My Gallery] 탭에 있는 [One Fine Day] 컨트롤을 클릭하면 이미지들이 아래로 좌르륵~ 펼쳐지고, 이미지를 클릭하면 웹 사이트가 열립니다. 어떤가요? 생일이나 각종 기념일 선물로도 손색이 없을 것 같지 않습니까? 그렇다고 이것만 믿고 결혼기념일이나 생일을 맞이하야 정략적으로(?) 깜빡하진 마시고요. (^^;)

어떻게 만드는지 작업 순서를 알아보도록 하죠.

리본X 코드 작성하기

역시나 첫 번째 단계는 문패를 달 집을 마련하는 것입니다.

1. [파일] - [새로 만들기]를 클릭하여 새로운 파일을 하나 만듭니다.

2. [파일] - [복사본 저장](또는 다른 이름으로 저장) - [Excel 매크로 사용 통합 문서]를 선택한 다음 적당한 이름으로 저장하고 파일을 닫습니다.

3. Custom UI Editor를 실행하여 앞에서 작성한 매크로 사용 통합 문서를 불러옵니다. XML로 다음과 같은 리본X 코드를 작성합니다.

<customUI xmlns='http://schemas.microsoft.com/office/2006/01/customui'>
<ribbon>
    <tabs>
        <tab id="MyTab" label="My Gallery" insertBeforeMso="TabHome">
        <group id="grpImage" label="Insert Image">
            <gallery id="MyGallery1" label="One Fine Day" size="large"
                columns="3" itemWidth="133" itemHeight="100"
                    imageMso="PictureInsertFromFile" onAction="WhatShallIDo">
                <item id="pic_01" image="pic_01"/>
                <item id="pic_02" image="pic_02"/>
                <item id="pic_03" image="pic_03"/>
                <item id="pic_04" image="pic_04"/>
                <item id="pic_05" image="pic_05"/>
                <item id="pic_06" image="pic_06"/>
                <item id="pic_07" image="pic_07"/>
                <item id="pic_08" image="pic_08"/>
                <item id="pic_09" image="pic_09"/>
                <item id="pic_10" image="pic_10"/>
                <item id="pic_11" image="pic_11"/>
                <item id="pic_12" image="pic_12"/>
            </gallery>
        </group>
    </tab>
</tabs>
</ribbon>
</customUI>

CODE

여기까지는 이전에 살펴본 리본 커스터마이징 방법과 크게 다르지 않습니다만, 이미지를 삽입하는 경우에는 한 가지 과정이 추가됩니다. 일단 필요한 이미지는 특정한 위치에 저장되어 있다고 가정하고 진행합니다.

4. Custom UI Editor에서 [Insert Icons] 아이콘을 클릭합니다. [Insert Custom Icons] 대화상자에서 삽입할 이미지들을 선택하고 [열기] 버튼을 클릭합니다. 여러분 PC에서 이미지 파일이 있는 폴더를 지정하시면 됩니다.

로딩 중...

에디터 오른쪽 창에 삽입될 이미지의 썸네일 이미지가 표시되면 제대로 된 것입니다.

로딩 중...

만약 삽입된 이미지의 ID를 변경하거나 삭제하려면 해당 썸네일을 마우스 오른쪽 버튼으로 클릭하고 단축 메뉴 중에서 선택하면 됩니다.

로딩 중...

콜백(CallBack) 프로시저 만들기

1. [Generate Callbacks] 아이콘을 클릭하면 콜백 프로시저가 생성됩니다. 범위를 지정한 다음 마우스 오른쪽 버튼을 클릭하고 [Copy] 메뉴를 선택합니다.

2. [Save] 버튼을 클릭하여 현재 파일을 저장합니다.

3. 엑셀로 돌아와서 해당 파일을 엽니다. VB Editor에서 모듈을 하나 삽입하고, 앞에서 복사한 콜백 프로시저를 붙여넣기 합니다. 다음 코드를 참고로 콜백 프로시저의 내용을 작성합니다. 각 사진별로 좀 더 의미있는 내용을 삽입하려면 코드의 내용을 보완하면 됩니다.

Sub WhatShallIDo(control As IRibbonControl, id As String, index As Integer)
    Select Case index + 1
        Case 1: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic242.asp"
        Case 2: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic243.asp"
        Case 3: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic244.asp"
        Case 4: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic246.asp"
        Case 5: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic266.asp"
        Case 6: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic268.asp"
        Case 7: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic278.asp"
        Case 8: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic278.asp"
        Case 9: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic279.asp"
        Case 10: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic279.asp"
        Case 11: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic303.asp"
        Case 12: OpenMyWeb "http://www.iexceller.com/MyPhotos/Pic342.asp"
    End Select
End Sub
'--------------------
Private Sub OpenMyWeb(strX As String)
    On Error GoTo ET
    ActiveWorkbook.FollowHyperlink Address:=strX, NewWindow:=True

ET:
    If Err.Number <> 0 Then
        MsgBox strX & "사이트를 열 수 없습니다", , "Error Number : " & Err.Number
        On Error GoTo 0
        Err.Clear
    End If
End Sub

CODE

파일을 닫았다가 다시 열어서 확인해 보세요. [One Fine Day] 버튼을 클릭했을 때 나타나는 이미지의 열 수나 크기는 리본X 코드에서 columns 속성 값을 조정하면 됩니다. 이미지가 더 추가되거나 삭제하는 경우라면 <item> 태그를 상황에 맞게 조절해야겠죠?

응용력을 발휘하면 영상 카드나 디지털 앨범을 만드는 것도 얼마든지 가능합니다. 응용해 보시고 재미있는 것이 나왔을 경우 알려주시면 소개해 드리겠습니다.