文字列に上付き文字を設定・解除する方法

今回の目標

この記事では、文字列に上付き文字を設定・解除する方法や、上付き文字が設定されているかを取得する方法を解説します。

目標リスト

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

Font.Superscript プロパティについて

Excelの上付き文字とは

上付き文字とはセルの上側に小さく文字を記載することです。文字列の一部のみ、上付き文字にすることが多いです。
例えば、ナトリウムイオンを表す「Na」や数学で使用される「10²」等で使用されます。
上付き文字のサンプル画像

Font.Superscript プロパティとは

Font.Superscript プロパティは、Rangeオブジェクトに含まれる Font オブジェクトのプロパティで、上付き文字の設定及び設定状況を取得できます。
取得時は Boolean 型の値で、True の場合は上付き文字で、False の場合は上付き文字ではありません。

Font.Superscript プロパティの構文

セルA1に上付き文字を設定するプログラムです。

Range("A1").Font.Superscript = True

セルA1に上付き文字が設定されているか取得するプログラムです。

Debug.Print Range("A1").Font.Superscript

文字列に上付き文字を設定・解除する

Rangeオブジェクトの Font.Superscript を使って上付き文字を設定、解除します。

サンプルコード

Sub FontSuperscriptSample1()
    'サンプルのテキストを入力
    Range("A1:A2").Value = "地道に学ぶExcelVBA"
    'セルA1を上付き文字を解除する
    Range("A1").Font.Superscript = False
    'セルA2を上付き文字にする
    Range("A2").Font.Superscript = True
End Sub
【実行結果】
(下の画像のようになります)
プログラム実行後の画像

文字列の一部に上付き文字を設定する

文字列の一部に上付き文字を設定する場合は、「Range」オブジェクトと「Font.Superscript」プロパティの間に『Characters』を追加します。
詳細は別記事(※準備中)で説明しますが、『Characters(開始位置, 文字数)』プロパティを使用します。
例:Range("A1").Characters(3, 2).Font.Superscript = True
 → セルA1の3文字目から2文字のみ(=3文字目と4文字目)、上付き文字を設定する

数字のみのセルにおいて、その文字列の一部を上付き文字にする場合は、セルの表示形式を文字列に設定 → 文字を代入 → 上付き文字 と段階を踏む必要があります。

サンプルコード

Sub FontSuperscriptSample2()
    
    With Range("A1")
        'セルA1のテキストを入力
        .Value = "NA+"
        'セルA1の3文字目から1文字のみ上付き文字にする
        .Characters(3, 1).Font.Superscript = True
    End With
    
    With Range("A2")
        'セルが数字のみの場合、表示形式を"文字列"にする
        .NumberFormat = "@"
        'セルA2のテキストを入力
        .Value = "102"
        'セルA2の3文字目から1文字のみ上付き文字にする
        .Characters(3, 1).Font.Superscript = True
    End With
    
    With Range("A3")
        'セルA3のテキストを入力
        .Value = "y = axb"
        'セルA3の7文字目から1文字のみ上付き文字にする
        .Characters(7, 1).Font.Superscript = True
    End With
    
    With Range("A4")
        'セルA4のテキストを入力
        .Value = "この方法注1で対応して…"
        'セルA4の2文字目から1文字のみ上付き文字にする
        .Characters(4, 2).Font.Superscript = True
    End With
End Sub
【実行結果】
(下の画像のようになります)
プログラム実行後の画像

文字列が上付き文字か確認する

Rangeオブジェクトの Font.Superscript で文字列に上付き文字が設定されているか、確認します。
「何も上付き文字が設定されていない状態か」を確認することで、種類を問わず上付き文字が設定されているかを確認します。

サンプルコード

Sub FontSuperscriptSample3()
    
    With Range("A1:A2")
        .Font.Superscript = False
        .Value = "NA+"
    End With
    
    'セルA1を上付き文字にする
    Range("A1").Font.Superscript = True
    
    'セルA2の3文字目から1文字のみ上付き文字にする
    Range("A2").Characters(3, 1).Font.Superscript = True
    
    'セルA1を上付き文字か確認する
    If Range("A1").Font.Superscript Then
        Debug.Print "セルA1 は上付き文字です"
    Else
        Debug.Print "セルA1 は上付き文字では、ありません"
    End If

    'セルA2の3文字目が上付き文字か確認する
    If Range("A2").Characters(3, 1).Font.Superscript Then
        Debug.Print "セルA2 の3文字目は上付き文字です"
    Else
        Debug.Print "セルA2 の3文字目は上付き文字では、" _
                    & "ありません"
    End If
End Sub
【実行結果】
セルA1 は上付き文字です。
セルA2 の3文字目は上付き文字です。

関連リンク

ページの先頭へ