教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA セル操作】セルの文字列に下付き(Font.Subscript)を設定する方法を教えて!

構文

構文は以下の通りです。

Range("セル範囲").Characters(開始文字, 桁数).Font.Subscript = True / False

解説

Range("セル範囲")は、対象となるセル範囲を指定する部分です。例えば、「A1:B10」はセルA1からB10までの範囲を意味します。Characters(開始文字, 桁数)は、セル内の文字列の一部を指定するためのプロパティです。この部分では、対象となる文字列の範囲を指定します。具体的には、開始文字と桁数を指定します。開始文字は、セル内の文字列の中で対象となる文字列の最初の文字の位置を示し、桁数は対象となる文字列の長さを示します。Font.Subscriptは、セル範囲内の特定の文字列の下付き文字の設定を行うためのプロパティです。Trueを指定すると、対象となる文字列が下付き文字として表示されます。一方、Falseを指定すると、下付き文字の設定を解除します。

使い方

具体的な使い方を以下のような例で説明します。

1. 分数の表示

例えば、セルに「1/2」という分数を表示する場合、以下のように「Font.Subscript」を利用して分母の「2」を下付き文字にします。

Sub ShowFraction()
    Range("A1").Value = "1/2"
    Range("A1").Characters(Start:=3, Length:=1).Font.Subscript = True
End Sub

このコードでは、「A1」セルに「1/2」と表示されますが、数字の「2」が下付き文字になります。

2. 化学式の表示

化学式では、元素記号の右下に原子数を表示する必要があります。以下の例では、「H2O」という化学式を表示し、「2」を下付き文字にします。

Sub ShowChemicalFormula()
    Range("A1").Value = "H2O"
    Range("A1").Characters(Start:=2, Length:=1).Font.Subscript = True
End Sub

このコードでは、「A1」セルに「H2O」と表示されますが、「2」が下付き文字になります。

3. 脚注の表示

Excelシートに脚注を付ける際にも「Font.Subscript」プロパティを使用できます。例えば、「A1」セルに本文を記述し、「A2」セルに脚注を表示する場合は次のようにします。

Sub ShowFootnote()
    Range("A1").Value = "これは本文です。"
    Range("A2").Value = "※注: 脚注の内容"
    Range("A2").Characters(Start:=2, Length:=2).Font.Subscript = True
End Sub

このコードでは、「A2」セルの「注」が下付き文字になります。

プログラミング例

例として、セルA1に「H2O」という文字列を入力し、その「2」を下付き文字として表示するVBAコードを示します。

Sub SetSubscript()
    Dim targetCell As Range
    Set targetCell = Range("A1") ' 対象セルを取得
    ' 下付き文字を設定
    targetCell.Characters(2, 1).Font.Subscript = True
    ' 下付き文字の解除
    ' targetCell.Characters(2, 1).Font.Subscript = False
End Sub

上記のコードでは、セルA1の2番目の文字を対象に「Font.Subscript」プロパティをTrueに設定しています。これにより、セルA1の「2」が下付き文字として表示されます。なお、下付き文字の設定を解除したい場合は、コメントアウトされた2行目のコードを有効にしてください。

まとめ

Font.Subscriptプロパティは、セル内の文字列を下付き文字として表示するための便利な機能です。特に化学式や数学の式など、特定の文脈での使用に適しています。是非活用してください。