文字列の取り消し線を設定・解除する方法

今回の目標

この記事では、文字列を取り消し線を設定、取り消し線を解除する方法を解説します。

目標リスト

  • 文字列に取り消し線を設定・解除できるようになる
  • 文字列に取り消し線が設定されるているか確認できるようになる
  • セル内の一部の文字のみ、取り消し線を設定できるようになる

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
【実行結果】
(下の画像のようになります)
プログラム実行後の画像

関連リンク

ページの先頭へ