LaTeX

엑셀 2007팁 - 차트 크기 지정, 그림파일로 export

ForceCore 2007. 10. 6. 13:02

LaTeX를 쓰다보면 엑셀의 차트를 넣을 때 문제가 생긴다.
일일이 프린트 스크린 키를 눌러 차트를 스크린 샷 한 다음에 저장 하기도 귀찮고,
그건 그렇다 치더라고 차트 크기를 "드래그"로 지정하는 한
모든 차트의 크기를 통일하긴 힘들 것이다.

 

엑셀 2007이전 것은

http://blog.naver.com/ssanzing2/140043219147

jwal chart tools를 쓰면 된다.

하지만 엑셀 2007에선 안 된다!

엑셀2007용으로도 그런 패키지가 있다. 역시 jwalk씨가 만들어서,

이번엔 다른 기능을 많이 넣고, 팔고있다. -_-;;


필자가 필요한 기능은 오직 크기 조절과 export니까,
엑셀의 vbscript로 만들어보기로 했다.

 

보기 -> 매크로 -> 매크로 기록을 한 다음 바로 기록을 정지시킨다.
그 뒤 그 매크로를 편집한다.

Sub ResizeChart()
    ' The ChartObject is the Chart's parent
    ActiveChart.Parent.Width = 478
    ActiveChart.Parent.Height = 338
    
    ' set legent to bottom
    ActiveChart.Legend.Select
    ActiveChart.Legend.Select
    Selection.Position = xlBottom
   
    ' remove border!
    ActiveChart.ChartArea.Select
    With Selection.Border
        .Weight = 1
        .LineStyle = 0
    End With
End Sub

Sub SaveChart()

    flToSave = Application.GetSaveAsFilename _
    ("chart.png", filefilter:="Portable Network Graphics (*.png), *.png", Title:="Export as...")

    If flToSave = False Then
    Exit Sub
    Else
        ActiveChart.Export Filename:=flToSave
    End If
   
End Sub

 

매크로 기록을 하면 생기는 나머지 코드는 다 삭제해도 좋다. -_-;;;

 

저걸 쓰려면:

대상 차트를 클릭하여 선택한 뒤, "매크로 보기"를 하여 원하는 매크로를 실행시키면 된다.

ResizeChart를 하면 600x450 (엑셀의 고유 단위로... 픽셀단위 아님.)으로 크기가 지정된다.

SaveChart를 하면 파일 저장 dialog가 나오는데 거기서 지정한 곳에 지정한 이름으로 png포멧으로 차트가 저장된다.


Resize하는 코드에 다른 기능을 하는 코드들도 있는데 원치 않으면 삭제하면 된다.
그림으로 저장하기 위해 테두리 삭제, 그리고 범례를 그래프 아래로 넣는 조작임.