文字列の取り消し線を設定・解除する方法
今回の目標
この記事では、文字列を取り消し線を設定、取り消し線を解除する方法を解説します。
目標リスト
- 文字列に取り消し線を設定・解除できるようになる
- 文字列に取り消し線が設定されるているか確認できるようになる
- セル内の一部の文字のみ、取り消し線を設定できるようになる
Font.Strikethrough プロパティについて
Font.Strikethrough プロパティとは
Font.Strikethrough プロパティは、Rangeオブジェクトに含まれる Font オブジェクトのプロパティで、取り消し線を設定できます。
また、取り消し線が設定されているかを取得することもできます。
取得時は Boolean 型の値で、True の場合は取り消し線が設定されており、False の場合は取り消し線は設定されていません。
Font.Strikethrough プロパティの構文
セルA1に取り消し線を設定するプログラムです。
Range("A1").Font.Strikethrough = True
セルA1の取り消し線が設定されているか取得プログラムです。取得結果はイミディエイトウィンドウに表示されます。
Debug.Print Range("A1").Font.Strikethrough
文字列の取り消し線を設定・解除する
Rangeオブジェクトの Font.Strikethrough を使って取り消し線を設定します。
サンプルコード
Sub FontStrikethroughSample1()
'サンプルテキストを入力する
Range("A1:A2").Value = "地道に学ぶExcelVBA"
'取り消し線を設定する
Range("A1").Font.Strikethrough = True
'取り消し線を解除する
Range("A2").Font.Strikethrough = False
End Sub
(下の画像のようになります)
文字列に取り消し線が設定されているか確認する
Rangeオブジェクトの Font.Strikethrough で文字列に取り消し線が設定されているか確認します。
サンプルコード
Sub FontStrikethroughSample2()
Dim flag As Boolean
'セルA1に取り消し線を設定する
Range("A1").Font.Strikethrough = True
'セルA1に取り消し線が設定されているか取得する
flag = Range("A1").Font.Strikethrough
'セルA1が取り消し線が設定されているか処理を分ける
If flag Then
Debug.Print "セルA1に取り消し線が設定されています"
Else
Debug.Print "セルA1に取り消し線が設定されていません"
End If
End Sub
セルA1に取り消し線が設定されています
文字列の一部に取り消し線を設定する
文字列の一部に取り消し線を設定する場合は、「Range」オブジェクトと「Font.Strikethrough」プロパティの間に『Characters』を追加します。
詳細は別記事(※準備中)で説明しますが、『Characters(開始位置, 文字数)』プロパティを使用します。
例:Range("A1").Characters(3, 2).Font.Strikethrough = True
→ セルA1の3文字目から2文字のみ(=3文字目と4文字目)、取り消し線を設定する
サンプルコード
Sub FontStrikethroughSample3()
'セルA1にテキストを入力し、取り消し線を解除する
With Range("A1")
.Value = "ABCDEFGHIJ"
.Font.Strikethrough = False
End With
With Range("A1")
'セルA1の3文字目から2文字のみ、取り消し線を設定する
.Characters(3, 2).Font.Strikethrough = True
'セルA1の7文字目から3文字のみ、取り消し線を設定する
.Characters(7, 3).Font.Strikethrough = True
End With
End Sub
(下の画像のようになります)
