【VBA】外枠の罫線だけ消す(個別、ループ処理)

セルの外枠の罫線だけを消す時は、上下左右の線を個別に消します。

消す方法は、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セルの外枠を消すなら、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で指定した範囲の外枠罫線を消します。

 

ループ処理で外枠の罫線を消す

上下左右を表す定数の値が7,8,9,10なのを利用して、7を開始値とした4回繰り返すループで外枠を消すこともできます。

コード

B2~E5で指定した範囲の外枠罫線を消します。

 

解説

xlEdgeLeftは7、xlEdgeRightは10なので、iの値が7,8,9,10と変化し外枠を消します。

個人的にはループ処理で書く必要はないかなと思います。

 

後から他人が見た時や、自分で見た時でもちょっとわかりにくいです。「左と右の線を消すのかな」みたいな勘違いもしやすいです。

 

4行程度であれば、素直に上下左右の罫線を消すコードを1つずつ書いた方が個人的には好きです。これが似たコードが10行が続くのであればループも使いますが・・・

 

関連記事

VBAテクニック辞典
成果を出す5つのポイント
VBAテクニック辞典
えくとしょ | 初心者のためのエクセルとVBAの図書館
タイトルとURLをコピーしました