[Excel VBA]MakeWhiteGridSheet~選択中のシートを白いExcel方眼紙(18px * 18px)に~
【2018/12/16 更新】
nukie_53さんから頂いた補正ソースを併記させて頂きました。
どうもありがとうございます!
選択中のシートを白いExcel方眼紙(18px * 18px)にするプロシージャです。
'***********************************************************
'[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は「セルのスタイル」の「標準」に設定されているフォントに依存し、「そのフォント○文字分の幅」を指定します。
そのため、現在の指定方法ではフォントが変更されたときに追従できないことになります。
そのあたりも含めてざっくり補正をかけると以下のようになるでしょう。
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
恥ずかしながら全く知らなかったので勉強になりました!
ありがとうございました!!
Author And Source
この問題について([Excel VBA]MakeWhiteGridSheet~選択中のシートを白いExcel方眼紙(18px * 18px)に~), 我々は、より多くの情報をここで見つけました https://qiita.com/maructy/items/0a22fedc12a7decd7aa6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .