ARCHIVE ...

서식 만들기 자동화(VBA) 본문

카테고리 없음

서식 만들기 자동화(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



Comments