[Excel VBA] MakeWhiteGridSheet ~ 선택중인 시트를 흰색 Excel 방안지 (18px * 18px)에 ~

【2018/12/16 갱신】
nukie_53씨로부터 받은 보정 소스를 병기시켜 받았습니다.
정말 고마워요!

선택한 시트를 흰색 Excel 방안지 (18px * 18px)로 만드는 절차입니다.

<실행 전>

<실행 후>


MakeWhiteGridSheet.bas
'***********************************************************
'[summary]make a white grid sheet (18px * 18px)
'[return]-
'[argument]-
'[detail]
'   1)select all cells
'   2)change cell size to 18px * 18px
'   3)fill with white
'[remarks]
'[create date]2018/12/15
'[update date]
'***********************************************************
Sub MakeWhiteGridSheet()
    ''select all cells
    Cells.Select
    ''change cell size to 18px * 18px
    Selection.ColumnWidth = 0.72
    Selection.RowHeight = 6.8
    ''fill with white
    Selection.Interior.ThemeColor = xlThemeColorDark1
    Selection(1).Select
End Sub

【2018/12/16 갱신】
nukie_53씨로부터 이하의 코멘트 및 보정 소스를 받았습니다!
감사합니다!

ColumnWidth는 "셀 스타일"의 "표준"으로 설정된 글꼴에 따라 달라지며 "글꼴 ○ 문자의 너비"를 지정합니다.
그 때문에, 현재의 지정 방법에서는 폰트가 변경되었을 때에 추종할 수 없게 됩니다.
그 근처도 포함하여 얼룩 보정을 걸면 다음과 같이 될 것입니다.

MakeWhiteGridSheet2.bas
Sub MakeWhiteGridSheet2()
    Const GridSizePx = 18
    Const Pt_per_Px = 72 / 96 '環境依存
    Const GridSizePt = Pt_per_Px * GridSizePx

    With Cells
        Dim a1Cell As Excel.Range
        Set a1Cell = .Item(1)

        ''change cell size to 18px * 18px
        .RowHeight = GridSizePt

        Dim i As Long
        For i = 1 To 2 '誤差のため1回では指定した数値ぴったりにならない事がある
            Dim charWidth_per_Pt As Double
            charWidth_per_Pt = a1Cell.ColumnWidth / a1Cell.Width
            .ColumnWidth = charWidth_per_Pt * GridSizePt
        Next i


        ''fill with white
        .Interior.ThemeColor = XlThemeColor.xlThemeColorDark1
    End With 'Cells
    a1Cell.Select
End Sub

부끄러워하면서 전혀 몰랐기 때문에 공부가 되었습니다!
고마워요! !

좋은 웹페이지 즐겨찾기