罫線を引く、という行為をVBAで行うことになる。
そういう時に役立つのが、[ツール]-[マクロ]-[新しいマクロの記録]である。分からないときは記録するといい。それだけでVBAのコードが生成されるのだ。
以下、記録してみた。選択中のシートに縦罫を2本引くだけ。
このままだと無駄な処理が多いので、削除する。記録したVBAには無駄が多いのだ。短くしよう。
線を引かない部分はカットするだけでこうである。更にまとめると
ここのポイントは With の使い方である。あと、VBAとして注意して欲しい点を変更する。
VBAで行や列を順次チェックするなら、数字で座標を表すR1C1形式の方が使いやすい。記録したA1形式ではプログラムとして利用しにくい。
R1C1とA1を混ぜても使えるが、R1C1に統一した方がややこしくなくていい。
そういう時に役立つのが、[ツール]-[マクロ]-[新しいマクロの記録]である。分からないときは記録するといい。それだけでVBAのコードが生成されるのだ。
以下、記録してみた。選択中のシートに縦罫を2本引くだけ。
Sub Macro1()
'
Range("B3:B16").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
このままだと無駄な処理が多いので、削除する。記録したVBAには無駄が多いのだ。短くしよう。
Sub Macro1()
Range("B3:B16").Select
'--- Selection.Borders(xlDiagonalDown).LineStyle = xlNone
'--- Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
'--- .LineStyle = xlContinuous
.Weight = xlThin
'--- .ColorIndex = xlAutomatic
End With
'--- Selection.Borders(xlEdgeTop).LineStyle = xlNone
'--- Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With Selection.Borders(xlEdgeRight)
'--- .LineStyle = xlContinuous
.Weight = xlThin
'--- .ColorIndex = xlAutomatic
End With
'--- Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
線を引かない部分はカットするだけでこうである。更にまとめると
Sub Macro1()
With Range("B3:B16")
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
End With
End Sub
ここのポイントは With の使い方である。あと、VBAとして注意して欲しい点を変更する。
Sub Macro1()
'xxx With Range("B3:B16")
With Range(Cells(3, 2), Cells(16, 2))
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeRight).Weight = xlThin
End With
End Sub
VBAで行や列を順次チェックするなら、数字で座標を表すR1C1形式の方が使いやすい。記録したA1形式ではプログラムとして利用しにくい。
R1C1とA1を混ぜても使えるが、R1C1に統一した方がややこしくなくていい。