카테고리 없음
서식 만들기 자동화(VBA)
냐옹이.
2011. 11. 13. 06:37
personal.xlsb에 코드를 넣으면 모든 엑셀 파일에서 아래 메크로를 사용할 수 있다.
Sub 출입기록_서식_만들기()
'
' 출입시간 위반자 프린트하기 위한 레이아웃 자동 설정.
'
레코드수 = Sheets(1).Range("A1").CurrentRegion.Rows.Count
' 시간 순으로 정렬
Range("A2").Select
With ActiveWorkbook.Worksheets(1).Sort
.SortFields.Clear
.SortFields.Add Key:=Range("A2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("A2:G" & 레코드수)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
' 관리동 레코드 삭제
For i = 레코드수 To 1 Step -1
If Left(Sheets(1).Cells(i, 6), 3) = "관리동" Or Left(Sheets(1).Cells(i, 7), 5) = "미등록카드" Then
Rows(i).Delete
End If
Next
' 첫번째 열 가운데 정렬
Rows("1:1").HorizontalAlignment = xlCenter
' 첫째 열 날짜/시간 포멧 조정
Columns("A:A").NumberFormatLocal = "m""/""d h:mm;@"
' 열 너비 조정
Columns("G:G").ColumnWidth = 12 ' 출입 내역
Columns("F:F").ColumnWidth = 12.25 ' 출입자 동, 층, 호
Columns("E:E").EntireColumn.AutoFit ' 카드 번호
Columns("D:D").EntireColumn.AutoFit ' 출입 자명
Columns("C:C").EntireColumn.AutoFit ' 기기 위치
Columns("A:A").EntireColumn.AutoFit ' 시간
' 프린트 레이아웃
Rows("1:1").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1:G1").Select
Selection.Merge
ActiveCell.FormulaR1C1 = "출입시간 위반자 명단"
Range("A1:G1").Select
Selection.Font.Bold = True
Selection.Font.Size = 14
Selection.HorizontalAlignment = xlCenter
Rows("1:1").RowHeight = 26.25
With ActiveSheet.PageSetup
.CenterFooter = "&P / &N"
.PrintTitleRows = "$2:$2"
' 여백 설정
.LeftMargin = Application.InchesToPoints(0.7)
.RightMargin = Application.InchesToPoints(0.7)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(0.6)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
End With
End Sub
Sub 무료_시트_레이아웃()
'
' 월별 출입카드 발급 내역 무료시트 칼럼 너비 설정.
'
Columns("A:A").ColumnWidth = 6.13
Columns("B:B").ColumnWidth = 8.38
Columns("C:C").ColumnWidth = 6.5
Columns("D:D").ColumnWidth = 10.38
Columns("E:E").ColumnWidth = 10.38
Columns("F:F").ColumnWidth = 7
Columns("G:G").ColumnWidth = 26.88
End Sub
Sub 유료_시트_레이아웃()
'
' 월별 출입카드 발급 내역 유료시트 칼럼 너비 설정.
'
Columns("A:A").ColumnWidth = 6.13
Columns("B:B").ColumnWidth = 8.25
Columns("C:C").ColumnWidth = 6.5
Columns("D:D").ColumnWidth = 7.25
Columns("E:E").ColumnWidth = 8.38
Columns("F:F").ColumnWidth = 6.5
Columns("G:G").ColumnWidth = 7.5
Columns("H:H").ColumnWidth = 24.25
End Sub