안녕하세요?
질문중에 엑셀에서 행높이와 열너비는 어떻게 계산하느냐는 질문이 있었는데...
전부터 이 부분을 말씀을 드린다 하면서도 계속 잊고 있었습니다.
아래 내용을 차분히 읽어보시고 이해하신다면 출력물의 크기를 조정하시는데 훨씬
손쉽게 하실 수 있을겁니다.
아랫글은 현재 Microsoft Office Excel MVP 이신 황기성 선생님이 예전 엑셀 2003 버젼으로
말씀하셨던 내용입니다.
제가 아무리 잘 설명해도 더 잘 설명할 자신이 없어 본문 그대로 전해 드립니다.
=======================================================================================
안녕하세요?
워크시트의 모든 열과 행의 너비와 높이를
열 너비 255문자
행 높이 409포인트
로 변경하고 A1에서부터 IV65536셀까지 출력하면,
16,777,216 장의 A4용지가 필요합니다. 이것은 1초에 1장씩 출력한다고 해도 194일 이상 쉬지 않고 출력해야 하는 분량이랍니다. 워크시트 한장이 얼마나 큼지막한 것인가를 알 수 있게 해주는 대목이랄 수 있습니다.
열 너비의 한계가 그런데 255문자란 무슨 뜻일까요?
엑셀에서 사용하는 열 너비의 단위는 아주 독특한 것이어서 기본 스타일의 한 문자 너비를 그 단위로 합니다. 즉, 열너비는 한 셀에 들어갈 수 있는 문자열의 개수를 표시하는 것이랄 수 있습니다. 따라서, 기본 스타일의 문자가 달라지면, 열너비의 단위도 달라지게 된다는 것입니다.
엑셀을 설치하신 뒤 옵션을 변경하지 않은 경우,
한 열의 표준 너비는 8.11입니다. 이것은, 도구 옵션 메뉴에서 일반 탭에서 확인할 수 있는 표준 글꼴(제 경우는 돋움, 글꼴의 크기는 11이군요)의 문자가 8글자하고 0.11글자만큼 들어간다는 것입니다.
윈도우에서 사용하는 글꼴에는 가변폭 글꼴과 고정폭 글꼴이란 것이 있는데요
가변폭 글꼴이란 그 문자가 어떤 글자이냐에 따라 같은 글꼴이라도 다양한 너비를 갖는 글꼴을 의미합니다. 다시 말해서 '1' 이라는 숫자가 영문 대문자 'M'보다 가로로 차지하는 공간이 적다는 뜻입니다. 이에 반해 고정폭 글꼴은 모든 문자가 동일한 너비를 가지는 글꼴입니다. 그러나, 고정폭 글꼴은 하나의 글자가 차지하는 공간을 모두 같게 부여하고 있기 때문에, 글자와 글자 사이의 간격이 모두 달라 보이게 되는 단점이 있습니다. 이를테면 하나의 글자에 부여되는 공간에 꽉 들어차게 디자인되는 대문자 M과, 아무래도 좌우로 공간이 많이 남게 되는 숫자 1, 영문 소문자 L 등은 글자사이의 간격이 달라 보여서 아름답지도 않을 뿐 아니라, 일정한 공간에 많은 수의 글자를 넣을 수도 없게됩니다. 그래서 윈도우의 경우는 대부분의 경우에 가변폭 글꼴을 많이 사용하게 됩니다.
돋움은 바로 가변폭 글꼴 가운데 하나입니다. 따라서, 이런 가변폭 글꼴을 이용하면 한 셀에 들어갈 수 있는 글자의 수가 들쭉날쭉일 것입니다. 실제로, 새로 통합문서를 열고 워크시트 셀에 알파벳 대문자 M을 연속으로 입력해 보십시오. 몇 글자나 표시되나요? 제가 확인해 보니 6글자가 온전히 표시되고, 글자 하나는 아주 조금만 표시되는군요. 자 이제 숫자 1을 연속으로 입력해 보십시오(주의! 숫자가 지수 형식으로 표시될 수 있으므로, 먼저 작은 따옴표(')를 입력한 뒤 숫자 1을 입력하십시오. 작은 따옴표는 실제로 입력되는 문자가 아니라, 입력되는 데이터가 문자열임을 표시하는 접두사로서 역할을 하게 됩니다. 혹, 무엇이든 입력하고 싶은대로 표시하려고 하신다면 작은따옴표를 먼저 입력하시면 된다는 것을 기억해 두십시오. 이것에 대해서는 추후 강좌에서 다시금 자세히 설명드리겠습니다) 몇 개의 글자가 표시되나요? 8개 이상이 표시될 것입니다.
한 셀에 표시될 수 있는 문자의 개수가 가변폭 글꼴의 경우는 이처럼 다를 수 있는 것입니다.
그렇다면, 열너비 단위로 사용된다는 문자는 어떤 것을 기준으로 할까요? 엑셀 도움말에 보면, 그것은 0이 기준이 된다고 합니다. 즉, 숫자 0이 몇 개나 표시될 수 있느냐 하는 것이 열너비의 기준이 되는 것입니다. 열너비가 8.11이라면, 가변폭 글꼴은 0이 8글자와 0.11만큼 들어갈 수 있다는 것입니다.
기억해 두십시오. 이 열너비의 단위로 사용되는 글꼴이란 사용자가 얼마든지 옵션에서 변경 가능하므로, 사용자의 시스템에 따라 열너비는 제각기일 수 있다는 것입니다.
그에 반해 행의 단위는 포인트라는 것이 사용됩니다.
포인트라는 단위는 인쇄된 문자의 높이를 나타내는 측정 단위로 1포인트는 1/72인치, 약 1/28센티미터입니다.
행의 단위는 열 너비의 단위에 비해 명확하게 측정이 가능하지만, 열너비는 그렇지 못하다는 점을 기억해 두십시오. 가끔씩, 열의 너비나 행의 높이를 Cm 단위로 어떻게 측정할 수 있는지 혹은 변경할 수 있는지를 묻는 질문을 주십니다.
엑셀의 기본 기능에서는 그런 기능이 제공되지 않으므로, VBA를 이용해 열의 너비나 행의 높이를 변경해야 합니다. 하지만, 실제로 출력해 보면 프린터의 종류에 따라 약간의 오차가 나는 문제점도 여전히 있습니다. 더불어, 그 특성상 정밀하게 행이나 열높이를 변경하실 수 없는 문제점이 있습니다.
VBA를 이용해 행과 열 높이를 조정하는 방법은 몇가지 제안된 것이 있습니다만, 아래의 간단한 코드를 참고하십시오.
Sub dhTest()
Dim dblWidth As Double
Dim dblHeight As Double
Const Es As String = "MagicSheet & 엑사모"
On Error GoTo e1
dblWidth = CDbl(InputBox("열 너비를 Cm 단위로 입력하십시오!", Es, 2))
dblHeight = CDbl(InputBox("행 높이를 Cm단위로 입력하십시오!", Es, 2))
dblWidth = Application.CentimetersToPoints(dblWidth)
Application.ScreenUpdating = False
With ActiveCell
.ColumnWidth = 0
.RowHeight = Application.CentimetersToPoints(dblHeight)
Do
.ColumnWidth = .ColumnWidth + 0.1
Loop Until .EntireColumn.Width >= dblWidth
End With
e1:
Application.ScreenUpdating = True
End Sub
엑셀은 썩 훌륭한 프로그램이지만 모든 점에서 만족을 주는 것은 아니랍니다.
도움이 되셨습니까?
=======================================================================================
그럼 또...!
첫댓글 많은 도움이 되었습니다.....감사합니다.
좋은 자료 감사합니다
좋은 자료 감사합니다.
잘봣습니다, 유용할것 같습니다, VBA 코딩 보관할께요..
감사힙니다.
감사합니다...
감사합니다...
어려워요
이해가 잘안되네요 저가 수준이 낮아서 ㅋㅋ 열심히 하다보면 되겠지요
감사합니다
아공~어렵다~
열심히 읽고 실습해 보겠습니다
하수라 그런지 맨 마지막 내용은 먼가요?? ^^;;; 어려워~;;;;
어렵군요 @@
기양 잡아 땡기서 습니다.. ㅋㅋ고맙습니다
잘보고 갑니다. 좋은자료 감사해요^^
공부를 좀 해야 겠네요. 좋은 자료 감사합니다.
아 이건 모르겠네요.
눈팽팽 한국어 인데 한국어가 아닌 듯한...공부 열심히 하겠습니다!
어렵네요 ㅠ 여러번 읽어봐야겠어요~
열심히 읽어도 어렵네요~~
엑셀을 수십년 사용하면서도 열너비와 행의 높이에 알지 못했던 지식을 오늘에야 배웠읍니다.
열의 너비를 조정하면서도 본래의 근본적 구조를 이해함이 없이 사용한 무지가 부끄럽내요.