表範囲の空白セルに斜線をひく方法
表範囲の空白セルに斜め線をひきたいケースがあると思いますが、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 数式が含まれているセル xlCellTypeConstants 2 定数が含まれているセル xlCellTypeBlanks 4 空白セル xlCellTypeLastCell 11 使われたセル範囲内の最後のセル xlCellTypeVisible 12 すべての可視セル - Value【バリュー】(省略可)
引数Type【タイプ】が「コメントが含まれるセル」を表すxlCellTypeConstants、または「数式が含まれたセル」を表すxlCellTypeFormulasの場合、取得する値の種類をXlSpecialCellsValue列挙型の定数で指定します。複数の値を加算して指定すると、複数の種類の定数や数式を指定できます。省略するとすべての定数および数式が対象になります。XlSpecialCellsValue列挙型の定数 定数 値 取得できる値の種類 xlNumbers 1 数値 xlTextValues 2 文字列 xlLogical 4 論理値 xlErrors 16 エラー値
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辺が対象になります。
定数 | 値 | 内容 |
---|---|---|
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
実行結果
以上で、表範囲の空白セルに斜線をひく方法についての解説を終了します。ありがとうございました。