【EXCEL VBA】指定したセル範囲に罫線を引く方法

訪問して頂きありがとうございます。まさふくろーです。

この記事では使用例を使って、指定したセル範囲に罫線を引く方法をご紹介します。

使用例

  1. 「実行」ボタンをクリック

  2. 「B2~C3」セルに中太の破線の格子罫線を引く
  3. 「B5~C7」セルのセル範囲の内側に実線の横罫線を引く
  4. 「B9~C9」の各セルに右下がりの実線を引く
  5. 「E2~F4」のセル範囲の下端に二重線の罫線を引く
  6. 「E6~F9」の罫線を消去する

 

使用するプロパティ

Bordersプロパティ

Rangeオブジェクト.Borders(Index)

解説 指定したセルの罫線を操作するためのBordersコレクション、またはBordersオブジェクトを取得する。
引数Indexを指定した場合は、指定した位置のBorderオブジェクトを取得する。指定しなかった場合は、各セルの上下左右の四辺を表すBorders

引数Indexの設定値

設定値 内容
xlEdgeTop セル範囲の上端の罫線
xlEdgeBottom セル範囲の下端の罫線
xlEdgeLeft セル範囲の左端の罫線
xlEdgeRight セル範囲の右端の罫線
xlInsideHorizontal セル範囲の内側の横罫線
xlInsideVertical セル範囲の内側の縦罫線
xlDiagonalDown 各セルの右下がりの罫線
xlDiagonalUp 各セルの右上がりの罫線

LineStyleプロパティ

オブジェクト.LineStyle

解説 指定した位置に指定した種類の罫線を引く。
オブジェクトには、Borderオブジェクト、Bordersコレクションを指定する。
設定値に「xlLineStyleNone」を指定すると、罫線を消去できる。
同じオブジェクトにLineStyleプロパティとWeightプロパティの両方を設定すると、設定値の組み合わせ次第では一方の設定が無効になる。例えば、太い二重線は設定できない。
設定値 内容
xlContinuous 実線
xlDash 破線
xlDashDot 一点鎖線
xlDashDotDot 二点鎖線
xlDot 点線
xlDouble 二重線
xlSlantDashDot 斜破線
xlLineStyleNone 線なし

Weightプロパティ

オブジェクト.Weight

解説 指定した位置に指定した太さの罫線を引く。
オブジェクトには、Borderオブジェクト、Bordersコレクションを指定する。
Excelで罫線のメニューから「格子」を選択したときに設定される線の太さは「xlThin」にあたる。
設定値 内容
xlHairline 細線
xlThin 中細の線
xlMedium 中太の線
xlThick 太線

ボタンの作成

「開発」タブの確認

リボンに「開発」タブが表示されているかの確認をします。

 

 

「開発」タブが表示されていない場合は、「開発タブの表示」をご覧ください。

ボタンの作成

①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。

シート上にカーソルを移動し、ポインターを「+」の状態にします。

 

左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。

 

「マクロの登録」画面が表示されます。

 

①「マクロ名」を変更⇒②「新規作成」ボタンをクリックします。

 

ボタンの名前を変更する

エクセルのブックに戻り、ボタンの上にフォーカスを当てます。すると、ポインターが「」マークに切り替わります。

 

右クリックでショートカットメニューを表示し、「テキストの編集」を選択します。

 

ボタンの名前を変更します。

 

サンプルプログラム

VBAコードの入力

VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。

3 「B2~C3」セルの各セルの上下左右の罫線について、以下処理を実行する
4 破線の罫線を引く
5 罫線の太さを中太にする
8 「B5~C7」セルのセル範囲の内側に実線の横罫線を引く
10 「B9~C9」セルに右下がりの実線の罫線を引く
12 「E2~F4」セルのセル範囲の下端に二重線の罫線を引く
14 「E6~F9」セルの各セルの上下左右の罫線を消去する

VBAコードの保存

「ファイル」タブをクリックします。

 

 

「名前を付けて保存」を選択し、ファイル保存画面を起動します。

 

 

①ファイル名を入力⇒②「Excel マクロ有効ブック(*.xlsm)」を選択⇒③「保存」ボタンをクリックします。

 

最後まで読んでいただき、ありがとうございました!