일반적으로 엑셀에서 셀크기를 조절할때는
1. 행이나 열을 선택
2. 오른쪽마우스버튼으로 메뉴를 띄우고
3. 열너비나 행높이를 선택
4. 현재의 열너비나 행높이값을 보고서 적당히 숫자입력
또는 마우스로 적당히 조절을 해줍니다.
아마도 보통 후자의 방법을 할것으로 생각됩니다.
그런데 만약 여러 열이나 행을 같이 조절을 해줄경우 일괄적으로 기존값들이 무시되고 모두 똑같은 행높이나 열너비를 갖게되는 문제점이 발생됩니다.
그리고 인쇄를 100%크기로 인쇄를 맞춰놓고 인쇄영역이 정확히 한장에 들어가게끔 열너비나 행높이를 조절하려고 하는 경우 매우 여러번 조심스럽게 조정을 해야하고 미세한 조정이 어려워서 불편함이 많았습니다.
그래서 화살표에 단축키를 두어 하나 또는 여러개의 행높이/열너비를 조절할 수 있는 프로시져를 짜봤습니다.
Private Sub Workbook_Open()
With Application
.OnKey "^%{LEFT}", "Columnsizeleft"
.OnKey "^%{RIGHT}", "Columnsizeright"
.OnKey "^%{DOWN}", "Rowsizehigh"
.OnKey "^%{UP}", "Rowsizelow"
End With
End Sub
With Application
.OnKey "^%{LEFT}", "Columnsizeleft"
.OnKey "^%{RIGHT}", "Columnsizeright"
.OnKey "^%{DOWN}", "Rowsizehigh"
.OnKey "^%{UP}", "Rowsizelow"
End With
End Sub
우선 애드인에 추가될 내용이므로 바로 단축키 설정이 될수 있도록 워크북 오픈 이벤트에 연결해 뒀습니다.
단축키는 Ctrl + Alt + 화살표 입니다. 이 부분은 원하시는 대로 커스터마이징 하셔도 되는데
저같은 경우는 Alt + 화살표를 필터링 컨트롤에 할당해두어서 이렇게 설정했습니다. 참조로 Ctrl + 화살표는 이미 엑셀에서 설정되어 있는 기본 단축키입니다.
Sub Columnsizeleft()
On Error Resume Next
Dim startcolcell As Integer
Dim lastcolcell As Integer
Dim i As Integer
With Selection
startcolcell = .Columns(1).Column '선택영역의 시작되는 열입니다
lastcolcell = .Columns.Count + startcolcell - 1 '선택영역의 마지막 열입니다
End With
For i = startcolcell To lastcolcell '선택영역의 시작되는 열부터 마지막 열까지 돌아가면서 크기를 0.1씩 줄여줍니다.
Columns(i).ColumnWidth = Columns(i).ColumnWidth - 0.1
Next i
End Sub
On Error Resume Next
Dim startcolcell As Integer
Dim lastcolcell As Integer
Dim i As Integer
With Selection
startcolcell = .Columns(1).Column '선택영역의 시작되는 열입니다
lastcolcell = .Columns.Count + startcolcell - 1 '선택영역의 마지막 열입니다
End With
For i = startcolcell To lastcolcell '선택영역의 시작되는 열부터 마지막 열까지 돌아가면서 크기를 0.1씩 줄여줍니다.
Columns(i).ColumnWidth = Columns(i).ColumnWidth - 0.1
Next i
End Sub
나머지는 원리는 같고 약간씩 변경만 되어 있으므로 확인하시기 바랍니다.
Sub Columnsizeright()
On Error Resume Next
Dim startcolcell As Integer
Dim lastcolcell As Integer
Dim i As Integer
With Selection
startcolcell = .Columns(1).Column
lastcolcell = .Columns.Count + startcolcell - 1
End With
For i = startcolcell To lastcolcell
Columns(i).ColumnWidth = Columns(i).ColumnWidth + 0.1
Next i
End Sub
On Error Resume Next
Dim startcolcell As Integer
Dim lastcolcell As Integer
Dim i As Integer
With Selection
startcolcell = .Columns(1).Column
lastcolcell = .Columns.Count + startcolcell - 1
End With
For i = startcolcell To lastcolcell
Columns(i).ColumnWidth = Columns(i).ColumnWidth + 0.1
Next i
End Sub
Sub Rowsizehigh()
On Error Resume Next
Dim startrowcell As Integer
Dim lastrowcell As Integer
Dim i As Integer
With Selection
startrowcell = .Rows(1).Row
lastrowcell = .Rows.Count + startrowcell - 1
End With
For i = startrowcell To lastrowcell
Rows(i).RowHeight = Rows(i).RowHeight + 0.3
Next i
End Sub
On Error Resume Next
Dim startrowcell As Integer
Dim lastrowcell As Integer
Dim i As Integer
With Selection
startrowcell = .Rows(1).Row
lastrowcell = .Rows.Count + startrowcell - 1
End With
For i = startrowcell To lastrowcell
Rows(i).RowHeight = Rows(i).RowHeight + 0.3
Next i
End Sub
Sub Rowsizelow()
On Error Resume Next
Dim startrowcell As Integer
Dim lastrowcell As Integer
Dim i As Integer
With Selection
startrowcell = .Rows(1).Row
lastrowcell = .Rows.Count + startrowcell - 1
End With
For i = startrowcell To lastrowcell
Rows(i).RowHeight = Rows(i).RowHeight - 0.3
Next i
End Sub
On Error Resume Next
Dim startrowcell As Integer
Dim lastrowcell As Integer
Dim i As Integer
With Selection
startrowcell = .Rows(1).Row
lastrowcell = .Rows.Count + startrowcell - 1
End With
For i = startrowcell To lastrowcell
Rows(i).RowHeight = Rows(i).RowHeight - 0.3
Next i
End Sub
CAST Add-in Ver 1.50 이상에 들어있습니다.
첨부파일로도 붙였습니다.
'Add In' 카테고리의 다른 글
단축키로 색 넣기 (2) | 2009.09.18 |
---|---|
엑셀 및 오피스 프로그램에서 PDF로 저장하기 (0) | 2009.09.07 |
현재 워크북 휴지통으로 집어넣기 (0) | 2009.08.12 |
JMT Excel Utilities (0) | 2009.07.21 |
내가 쓰는 엑셀 애드온 (0) | 2009.07.20 |