HOME > EXCEL 강좌 > EXCEL 2007

Microsoft Office Excel 2007

- 최초 작성일 : 2008-11-02
- 최종 수정일 : 2008-11-04

- 강좌 읽음수 : 57,998회
- 자료 작성자 :

- 강좌 제목 : 레이더 차트 응용 - 케로로와 친구들 전투력 비교

들어가기 전에: 삶의 원칙

가을이 깊어져 갑니다. 어느덧 11월로 접어들었구요.

사람들이 하는 말 중에서 가장 슬픈 단어는 '그때 만약 ~~ 했더라면'이라는군요. 후회하지 인생을 살기 위해, 이 말을 '지금부터는 ~~하겠다'로 바꿔보도록 노력해야 하겠습니다..

진정한 여행 (나짐 히크메트)

가장 훌륭한 시는 아직 씌어지지 않았다.
가장 아름다운 노래는 아직 불려지지 않았다.
최고의 날들은 아직 살지 않은 날들
가장 넓은 바다는 아직 항해되지 않았고
가장 먼 여행은 아직 끝나지 않았다.
불멸의 춤은 아직 추어지지 않았으며
가장 빛나는 별은 아직 발견되지 않은 별
무엇을 해야할 지 더 이상 알 수 없을 때
그때 비로소 진정한 무엇인가를 할 수 있다.
어떤 길로 가야할 지 더 이상 알 수 없을 때
그때가 비로소 진정한 여행의 시작이다.

<사랑하라 한번도 상처받지 않은 것처럼>, 류시화

늘 이맘때면 인생의 본질적인 것들에 대해 한번쯤 생각해 보게 됩니다. 자신의 삶을 지배하는 원칙에 대해 한번쯤 생각해 보는 것도 좋겠습니다.


예제 파일 내려받기


얼마 전까지 준우(엑셀러 주니어, 6세)의 장래희망은 '개구리 중사 케로로'가 되는 것이었습니다(지금은 '파워레인저 트레져포스'가 되겠다는군요. -_-;). 준우와 함께 케로로를 보면서 놀다가 이런 것을 만들어 보았습니다. 이름하야 '케로로와 친구들 전투력 비교 차트'입니다. ^^

<완성 예>

오늘 강좌도 <월간 PC라인> 9월호에 기고한 내용 중 일부를 편집한 것입니다. 전개 방식이 다소 드라이하고, 반말로 진행하더라도 이해해 주시기 바래요. ~~

만드는 방법은... 아주 간단합니다. 예제 파일을 열고 '비교차트 만들기' 버튼을 클릭하면 4개의 레이더 차트(다른 말로 '방사형' 차트)가 좌르륵~ 만들어집니다.

<완성 예>와 같은 형태를 만들기 위해서는 이름 정의를 먼저 해 두고 사용합니다. B10:E19 영역을 범위로 지정하고 '셀 병합' 합니다. F10:I19, B20:E29, F20:I29 영역들에 대해서도 '셀 병합'을 한 다음, 각각의 영역에 Chart1~Chart4라는 이름을 지정합니다.

레이더 차트를 작성할 때 사용되는 B2:F8 영역에 대해서 'Source'라는 이름도 지정해줍니다.

VB Editor 상태에서 '삽입-모듈' 메뉴를 이용하여 모듈을 한 장 삽입하고 다음과 같은 코드를 작성합니다. 엑셀 2007 버전에 맞게 작성된 것이므로 그 이전 버전에서는 제대로 작동하지 않을 수 있습니다(많이 다르진 않고 색상 표현과 관련된 일부 오브젝트에서 차이가 있습니다).

Sub CompareRadar()

    Dim rngSource As Range
    Dim i As Integer
    Dim strSheetName As String
    '등장인물들과 배역을 설정합니다.

    Set rngSource = Range("Source")
    Application.ScreenUpdating = False
    On Error Resume Next

    ActiveSheet.ChartObjects.Delete
    '현재 시트에 이미 만들어진 차트가 있다면 지웁니다. 만약 차트가 없다면 오류가 발생
    '하므로 앞에서 On Error Resume Next 구문을 추가하였습니다.

    strSheetName = ActiveSheet.Name

    For i = 1 To rngSource.Columns.Count - 1
    '몇 명의 전투력을 비교할 것인지 순환횟수를 지정합니다.
        Charts.Add

        With ActiveChart
            .ChartType = xlRadarFilled
            .SetSourceData Worksheets(strSheetName). _
                Range(rngSource.Columns(1).Address _
                & "," & rngSource.Columns(i + 1).Address)
            .Location xlLocationAsObject, strSheetName
            '차트의 종류, 원본 데이터, 차트를 이동할 위치 등을 지정합니다.

        End With

        With ActiveSheet.ChartObjects(i)
        '차트를 삽입할 위치를 지정합니다. 변수 i의 값을 통해 각 차트별로 위치를 다르게
        '지정해 줍니다.

            .Top = Range("Chart" & i).Top
            .Left = Range("Chart" & i).Left
            .Width = Range("Chart" & i).MergeArea.Width
            .Height = Range("Chart" & i).MergeArea.Height
        End With

        With ActiveChart
        '삽입된 차트의 각종 서식을 변경(또는 지정)합니다. 생소한 오브젝트나 메서드,
        '프로퍼티에 대해서는 해당 위치에서 <F1> 키를 누르면 자세한 도움말이 나오므로
        '직접 확인하도록 하세요.


            .SeriesCollection(1).Fill.OneColorGradient _
                Style:=msoGradientHorizontal, _
                Variant:=1, Degree:=0.9
            .SeriesCollection(1).ApplyDataLabels
            .Legend.Delete
            .ChartStyle = 30
            .SetElement (msoElementChartTitleCenteredOverlay)

            With .SeriesCollection(1).DataLabels
                .Font.ColorIndex = 3
                .Font.Bold = True
                .Interior.ColorIndex = 6
            End With

            With .ChartTitle
                .Font.Size = 12
                .Left = 0
                .Top = 0
            End With

            With .Axes(xlValue)
                .MajorGridlines.Border.LineStyle = xlDot
                .MaximumScale = 10
            End With
        End With

    Next i

    rngSource.Cells(1).Select
    Application.ScreenUpdating = True
    MsgBox "전투력 비교시트 작성이 완료되었습니다!", , "아이엑셀러 닷컴//Exceller"

End Sub

워크시트로 돌아가서 '양식 컨트롤'의 '단추'를 하나 삽입하고 오른쪽 마우스 버튼을 클릭한 다음 '매크로 지정' 메뉴를 선택합니다.

'매크로 지정' 대화상자에서 '매크로 이름' 항목을 보면, 앞에서 작성한 'CompareRadar' 프로시저가 나타나는데, 이것을 선택하고 '확인' 버튼을 클릭합니다. 이제 이 버튼을 클릭할 때마다 레이터 차트들이 자동으로 생성됩니다.

'엑셀 강좌 시간에 웬 VBA야. 이건 배쉰이야 배쉰!!' 이라고 생각하는 분이 모쪼록 없기를 바랍니다.

다음 시간에 또...


Previous

Next

Copyright ⓒ 2008 아이엑셀러 닷컴. All rights reserved.