セルの外枠の罫線だけを消す時は、上下左右の線を個別に消します。
消す方法は、Borders(罫線の種類).LineStyle プロパティの引数で「罫線の種類」を指定し、プロパティの値にxlNoneを設定します。
罫線の種類 | 説明 | 定数の値 |
---|---|---|
xlEdgeLeft | 左の線 | 7 |
xlEdgeTop | 上の線 | 8 |
xlEdgeBottom | 下の線 | 9 |
xlEdgeRight | 右の線 | 10 |
実際の外枠の消し方を、これから紹介していきます。
個別に外枠の罫線を消す
対象セルに対して、上下左右の罫線を消すコードを4行書きます。
1セルの時
Range(“セル番地”).Borders(xlEdgeLeft).LineStyle = xlNone
Range(“セル番地”).Borders(xlEdgeTop).LineStyle = xlNone
Range(“セル番地”).Borders(xlEdgeBottom).LineStyle = xlNone
Range(“セル番地”).Borders(xlEdgeRight).LineStyle = xlNone
1つのセルの外枠罫線を消す時は、対象セルの指定を「Rangeのセル番地」か「Cellsの行番号・列番号」でします。
Rangeのセル番地は、ダブルクォーテーションで囲みます。
コード
B2セルの外枠罫線を消します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
'Rangeによる対象セルの指定---------- Range("B2").Borders(xlEdgeLeft).LineStyle = xlNone Range("B2").Borders(xlEdgeTop).LineStyle = xlNone Range("B2").Borders(xlEdgeBottom).LineStyle = xlNone Range("B2").Borders(xlEdgeRight).LineStyle = xlNone 'Cellsによる対象セルの指定---------- Cells(2, 2).Borders(xlEdgeLeft).LineStyle = xlNone Cells(2, 2).Borders(xlEdgeTop).LineStyle = xlNone Cells(2, 2).Borders(xlEdgeBottom).LineStyle = xlNone Cells(2, 2).Borders(xlEdgeRight).LineStyle = xlNone |
1セルの外枠を消すなら、1セルの内側に縦横の線はないので、
Range(“B2”).Borders.LineStyle = xlNone
とすべての罫線を消す書き方をしても、外枠だけを消すことができます。
複数セルの時
Range(“左上セル番地:右下セル番地”).Borders(xlEdgeLeft).LineStyle = xlNone
Range(“左上セル番地:右下セル番地”).Borders(xlEdgeTop).LineStyle = xlNone
Range(“左上セル番地:右下セル番地”).Borders(xlEdgeBottom).LineStyle = xlNone
Range(“左上セル番地:右下セル番地”).Borders(xlEdgeRight).LineStyle = xlNone
複数セルで指定した範囲の外枠罫線を消す時は、Rangeで対象範囲の左上のセル番地と右下のセル番地を:でつないで指定します。
指定したセル番地全体をダブルクォーテーションで囲みます。
コード
B2~E5で指定した範囲の外枠罫線を消します。
1 2 3 4 5 6 |
Range("B2:E5").Borders(xlEdgeLeft).LineStyle = xlNone Range("B2:E5").Borders(xlEdgeTop).LineStyle = xlNone Range("B2:E5").Borders(xlEdgeBottom).LineStyle = xlNone Range("B2:E5").Borders(xlEdgeRight).LineStyle = xlNone |
ループ処理で外枠の罫線を消す
上下左右を表す定数の値が7,8,9,10なのを利用して、7を開始値とした4回繰り返すループで外枠を消すこともできます。
コード
B2~E5で指定した範囲の外枠罫線を消します。
1 2 3 4 5 6 |
Dim i As Long For i = xlEdgeLeft To xlEdgeRight Range("B2:E5").Borders(i).LineStyle = xlNone Next i |
解説
xlEdgeLeftは7、xlEdgeRightは10なので、iの値が7,8,9,10と変化し外枠を消します。
個人的にはループ処理で書く必要はないかなと思います。
後から他人が見た時や、自分で見た時でもちょっとわかりにくいです。「左と右の線を消すのかな」みたいな勘違いもしやすいです。
4行程度であれば、素直に上下左右の罫線を消すコードを1つずつ書いた方が個人的には好きです。これが似たコードが10行が続くのであればループも使いますが・・・