Excel VBA 表範囲の空白セルに斜線をひく

スポンサーリンク

表範囲の空白セルに斜線をひく方法

表範囲の空白セルに斜め線をひきたいケースがあると思いますが、Excelの標準機能の「条件付き書式」でできそうですが、斜め線には対応していません。

そこで、VBAを利用して空白セルを取得して斜め線をひくコードのご紹介をします。

SpecialCell【スペシャルセル】メソッドを使用して指定セル内のすべての空白セルを取得して
Borders【ボーダーズ】プロパティで斜め線のBoder【ボーダー】オブジェクトを取得し、Boder【ボーダー】オブジェクトのLineStyle【ラインスタイル】プロパティで線の種類を設定して
Boder【ボーダー】プロパティで指定したセル範囲(SpecialCellメソッドで取得した空白セル)
に線をひきます。

SpecialCells【スペシャルセルズ】メソッド

指定した条件を満たすすべてのセルを取得するには、Range【レンジ】オブジェクトの
SpecialCells【スペシャルセルズ】メソッドを使用します。

SpecialCells【スペシャルセルズ】メソッドの書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.SpecialCells( Type[, Value] )

  • オブジェクト(必須)
    条件を指定するセル範囲をRangeオブジェクトで指定します。
  • Type【タイプ】(必須)
    取得するセルの種類をXlCellType 列挙型の定数で指定します。

    XlCellType 列挙型の定数
    定数内容
    xlCellTypeSameValidation-4175同じ条件の設定が含まれているセル
    xlCellTypeAllValidation-4174条件の設定が含まれているセル
    xlCellTypeSameFormatConditions-4173同じ表示形式が設定されているセル
    xlCellTypeAllFormatConditions-4172表示形式が設定されているセル
    xlCellTypeComments-4144コメントが含まれているセル
    xlCellTypeFormulas-4123数式が含まれているセル
    xlCellTypeConstants2定数が含まれているセル
    xlCellTypeBlanks4空白セル
    xlCellTypeLastCell11使われたセル範囲内の最後のセル
    xlCellTypeVisible12すべての可視セル
  • Value【バリュー】(省略可)
    引数Type【タイプ】が「コメントが含まれるセル」を表すxlCellTypeConstants、または「数式が含まれたセル」を表すxlCellTypeFormulasの場合、取得する値の種類をXlSpecialCellsValue列挙型の定数で指定します。複数の値を加算して指定すると、複数の種類の定数や数式を指定できます。省略するとすべての定数および数式が対象になります。

    XlSpecialCellsValue列挙型の定数
    定数取得できる値の種類
    xlNumbers1数値
    xlTextValues2文字列
    xlLogical4論理値
    xlErrors16エラー値

Borders【ボーダーズ】プロパティ

セルの上下左右、斜めに設定されている罫線を表すBorder【ボーダー】オブジェクトを取得するには、Borders【ボーダーズ】プロパティを使用します。

Border【ボーダー】オブジェクトを取得するには、Bordersプロパティで対象となる罫線の位置を引数で参照する必要があります。

Borders【ボーダーズ】プロパティで引数を省略した場合はすべての罫線を表すBorders【ボーダーズ】コレクションが取得されます。

Borders【ボーダーズ】プロパティの書式と設定値()の説明

[]内は省略可能です。
オブジェクト.Borders( [Index] )

  • オブジェクト(必須)
    Range【レンジ】オブジェクトを指定します。
  • Index【インデックス】(省略可)
    参照する罫線の位置をxlBordersIndex列挙型の定数で指定します。
定数内容
xlEdgeTop【エッジトップ】8上端の横線
xlEdgeBottom【エッジボトム】9下端の横線
xlEdgeLeft【エッジレフト】7左端の縦線
xlEdgeRight【エッジライト】10右端の縦線
xlInsideHorizontal【インサイドホリゾンタル】12選択範囲内の内側の水平(横)線
xlInsideVertical【インサイドバーティカル】11選択範囲内の内側の垂直(縦)線
xlDiagonalDown【ダイアゴナルダウン】5各セルの左上隅から右下への罫線
xlDiagonalUp【ダイアゴナルアップ】6各セルの左下隅から右上への罫線

LineStyle【ラインスタイル】プロパティ

罫線の種類を設定するには、Border【ボーダー】オブジェクトのLineStyle【ラインスタイル】プロパティを使用します。値の取得と設定ができます。

LineStyle【ラインスタイル】プロパティの書式と設定値の説明

オブジェクト.LineStyle = 設定値

  • オブジェクト(必須)
    Border【ボーダー】オブジェクトまたは、Bordersコレクションを指定します。
  • 設定値(必須)
    罫線の種類をxlLineStyle列挙型の定数で指定します。オブジェクトがBordes【ボーダーズ】コレクションの場合は選択範囲のセルの4辺が対象になります。
xlLineStyle列挙型の定数
定数内容
xlContinuous【コンテュニアス】
または、True
1実線
xlDash【ダッシュ】-4115破線
xlDashDot【ダッシュドット】4一点鎖線
xlDashDotDot【ダッシュドットドット】5ニ点鎖線
xlDot【ドット】-4118点線
xlDouble【ダブル】-4119二重線
xlSlantDashDot【スラントダッシュドット】13斜め破線
xlLineStyleNone【ラインスタイルナム】
または、False
-4142線なし

表範囲の空白セルに斜線をひく例

コード例

Sub 空白斜線()
With Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks)
.Borders(xlDiagonalDown).LineStyle = True
End With
End Sub

実行結果


以上で、表範囲の空白セルに斜線をひく方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告