'VBA 행높이와 열너비'에 해당되는 글 1건

728x90

행높이와 열너비 저장 및 복원


엑셀에서 복사를 하면 그대로 서식까지 복사가 되면서 행높이, 열너비까지 그대로 복사가 되는 경우라면 고민을 할 필요가 없습니다.

그런데 서식은 복사되는데 행높이, 열너비 정보는 가져오지 못하는 경우가 있어서 이걸 해결하기 위해서 고수분의 도움을 받았고 나머지는 제가 구현을 했습니다.

고수분이 알려주신 로직은 함수로 만들어서 깔금하게 처리했더군요. 전 그냥 기본 수준으로 처리했습니다.


엑셀의 행높이와 열너비를 구해서 파일로 저장하는 VBA 코드입니다.

첨부된 파일은 아래 코드입니다. 다운로드 받아서 텍스트 에디터로 열어서 복사하여 붙여넣기 하면 됩니다.

VBA 실행방법을 잘 모르시는 분은 http://link2me.tistory.com/565 참조해서 따라하면 금방 이해될 겁니다.


Row_Height_vba.vbs



Sub Save_RowHeight()

    Dim i%, Col As Variant, Ro As Variant

    

    ReDim Ro(1 To 30)

    For i = 1 To 30   '// 행의 개수는 필요한 경우 수정해줌

        Ro(i) = Cells(i, 1).RowHeight

    Next i

    Open ThisWorkbook.Path & "\ro.css" For Output As #1

    Print #1, Join(Ro, ",")

    Close #1  '// 작업을 마치고 파일을 닫는다

    

    ReDim Col(1 To Columns("Y").Column)

    For i = 1 To Columns("Y").Column

        Col(i) = Cells(1, i).ColumnWidth

    Next i

    Open ThisWorkbook.Path & "\col.css" For Output As #2

    Print #2, Join(Col, ",")

    Close #2   '// 작업을 마치고 파일을 닫는다

End Sub


저장된 파일에서 읽어서 행높이와 열너비를 자동으로 지정하는 VBA 코드입니다.

행높이와 열너비라서 저장된 파일이 한줄이라서 파일 여러줄을 읽을 필요가 없는 경우입니다.

그래서 줄의 마지막까지 데이터를 읽어서 처리하는 형태가 아님


Sub Get_RowHeight()

    Dim strTemp As String

    Dim varTemp As Variant

    Dim i, j As Integer

    

    Application.ScreenUpdating = False  '// 화면 업데이트 (일시)정지

    Open ThisWorkbook.Path & "\ro.css" For Input As #1

    Line Input #1, strTemp

    varTemp = Split(strTemp, ",")

    For i = 0 To UBound(varTemp)

        Cells(i + 1, 1).RowHeight = Val(varTemp(i))

    Next i

    Close #1 '// 파일번호 닫기


    Open ThisWorkbook.Path & "\col.css" For Input As #2

    Line Input #2, strTemp

    varTemp = Split(strTemp, ",")

    For j = 0 To UBound(varTemp)

        Cells(1, j + 1).ColumnWidth = Val(varTemp(j))

    Next j

    Close #2 '// 파일번호 닫기

End Sub



블로그 이미지

Link2Me

,