Strikethroughプロパティ
セルに入力する文字に横線を引いて「取り消し線」表示させることができます。
設定すると、このA1セルのように表示されます。
Excelで設定する場合はセルの書式設定のフォントタブで、取り消し線、のチェックを付けます。
VBAで取り消し線の状態取得や設定を行うにはStrikethroughプロパティを利用します。
構文
1 |
Fontオブジェクト.Strikethroughプロパティ |
親オブジェクトにはFontオブジェクトを指定します。
StrikethroughプロパティはBoolean型のTrueとFalseの値を持ちます。
取得と設定のどちらの場合も、Trueで取り消し線、Falseで解除、を指します。
サンプルコード
以下は指定セル範囲の取り消し線状態の取得と設定を行うサンプルです。
1 2 3 4 5 6 7 8 9 |
Sub StrikethroughTest() Dim b As Boolean '// 取り消し線状態を取得 b = ActiveCell.Font.Strikethrough '// 取り消し線に設定 ActiveCell.Font.Strikethrough = True End Sub |
指定セル範囲の取り消し線の設定と解除を切り替える関数
以下のコードは指定セル範囲の取り消し線の設定を切り替えるマクロです。
切替自体は2行目のように否定演算子のNotを使えば1行で書くことが出来ます。3行目で行っていることは5行目以降のコメント部分の書き換えです。
取り消し線が設定されていれば解除し、解除されていれば取り消し線にする、という処理になります。
1 2 3 4 5 6 7 8 9 10 |
Sub ChangeStrikethrough(r As Range) '// 取り消し線の設定を切り替える r.Font.Strikethrough = Not r.Font.Strikethrough ' If (r.Font.Strikethrough = True) Then ' r.Font.Strikethrough = False ' Else ' r.Font.Strikethrough = True ' End If End Sub |
使い方
上の関数は引数にセル範囲の指定をして呼び出します。
1 2 3 4 |
Sub ChangeStrikethroughTest() '// A1セルの取り消し線状態を切り替える Call ChangeStrikethrough(Range("A1")) End Sub |