文字列に下付き文字を設定・解除する方法
今回の目標
この記事では、文字列に下付き文字を設定・解除する方法や、下付き文字が設定されているかを取得する方法を解説します。
目標リスト
- 文字列に下付き文字を設定・解除できるようになる
- 文字列に下付き文字が設定されているか確認できるようになる
- セル内の一部の文字のみ、下付き文字を設定できるようになる
Font.Subscript プロパティについて
Excelの下付き文字とは
下付き文字とはセルの下側に小さく文字を記載することです。文字列の一部のみ、下付き文字にすることが多いです。
例えば、水を表す「H2O」や数学やプログラムで使用される「P1」等で使用されます。
Font.Subscript プロパティとは
Font.Subscript プロパティは、Rangeオブジェクトに含まれる Font オブジェクトのプロパティで、下付き文字の設定及び設定状況を取得できます。
取得時は Boolean 型の値で、True の場合は下付き文字で、False の場合は下付き文字ではありません。
Font.Subscript プロパティの構文
セルA1に下付き文字を設定するプログラムです。
Range("A1").Font.Subscript = True
セルA1に下付き文字が設定されているか取得するプログラムです。
Debug.Print Range("A1").Font.Subscript
文字列に下付き文字を設定・解除する
Rangeオブジェクトの Font.Subscript を使って下付き文字を設定、解除します。
サンプルコード
Sub FontSubscriptSample1()
'サンプルのテキストを入力
Range("A1:A2").Value = "地道に学ぶExcelVBA"
'セルA1を下付き文字を解除する
Range("A1").Font.Subscript = False
'セルA2を下付き文字にする
Range("A2").Font.Subscript = True
End Sub
(下の画像のようになります)
文字列の一部に下付き文字を設定する
文字列の一部に下付き文字を設定する場合は、「Range」オブジェクトと「Font.Subscript」プロパティの間に『Characters』を追加します。
詳細は別記事(※準備中)で説明しますが、『Characters(開始位置, 文字数)』プロパティを使用します。
例:Range("A1").Characters(3, 2).Font.Subscript = True
→ セルA1の3文字目から2文字のみ(=3文字目と4文字目)、下付き文字を設定する
サンプルコード
Sub FontSubscriptSample2()
With Range("A1")
'セルA1のテキストを入力する
.Value = "H2O"
'セルA1の2文字目から1文字のみ下付き文字にする
.Characters(2, 1).Font.Subscript = True
End With
With Range("A2")
'セルA2のテキストを入力する
.Value = "log2(8) = 3"
'セルA2の4文字目から1文字のみ下付き文字にする
.Characters(4, 1).Font.Subscript = True
End With
With Range("A3")
'セルA3のテキストを入力する
.Value = "P1 > P2"
'セルA3の2文字目から1文字のみ下付き文字にする
.Characters(2, 1).Font.Subscript = True
'セルA3の7文字目から1文字のみ下付き文字にする
.Characters(7, 1).Font.Subscript = True
End With
End Sub
(下の画像のようになります)
文字列が下付き文字か確認する
Rangeオブジェクトの Font.Subscript で文字列に下付き文字が設定されているか、確認します。
「何も下付き文字が設定されていない状態か」を確認することで、種類を問わず下付き文字が設定されているかを確認します。
サンプルコード
Sub FontSubscriptSample3()
'セルA1, A2のテキストを入力、下付き文字を解除する
With Range("A1:A2")
.Font.Subscript = False
.Value = "H2O"
End With
'セルA1を下付き文字にする
Range("A1").Font.Subscript = True
'セルA2の2文字目から1文字のみ下付き文字にする
Range("A2").Characters(2, 1).Font.Subscript = True
'セルA1を下付き文字か確認する
If Range("A1").Font.Subscript Then
Debug.Print "セルA1 は下付き文字です。"
Else
Debug.Print "セルA1 は下付き文字ではありません。"
End If
'セルA2の2文字目が下付き文字か確認する
If Range("A2").Characters(2, 1).Font.Subscript Then
Debug.Print "セルA2 の2文字目は下付き文字です。"
Else
Debug.Print "セルA2 の2文字目は下付き文字では" _
& "ありません。"
End If
End Sub
セルA1 は下付き文字です。
セルA2 の2文字目は下付き文字です。
