VBAでセル内の一部文字列だけを上付きにする方法【数式風テキストの作成】

目次

概要

Excelでは、「x² + y」や「m² + n」のように、一部の文字だけを**上付き(上付き文字:Superscript)**にしたいことがあります。しかし、標準のセル入力では上付きにする機能は提供されていません。

このような場合、VBA(Visual Basic for Applications)を使用することで、セル内の一部文字列に対してフォント設定を個別に適用することが可能です。

本記事では、VBAを使って文字列の一部だけを上付きに設定する方法を解説いたします。

サンプルコード

Sub CreateFormulaLikeText()

    ' 数式風の文字列を設定
    Range("E2").Value = "a2 + b"

    ' 2乗部分(2文字目)を上付き文字に変更
    Range("E2").Characters(Start:=2, Length:=1).Font.Superscript = True

End Sub

コード解説

  • Range("E2").Value = "a2 + b"
    セル E2 に文字列を設定しています。ここでは「a² + b」のイメージです。
  • .Characters(Start:=2, Length:=1).Font.Superscript = True
    「2」の部分だけを**上付き(Superscript)**に設定します。
    • Start:=2 は、2文字目(”2″)から変更対象とする指定です。
    • Length:=1 は、1文字分だけ書式を適用する指定です。

結果:

見た目としては a² + b のように表示されます。

応用例

  • 数式風のラベルや注釈の整形(例:H₂O、m²、xⁿ など)
  • 資料内に数理的な表現を自然に取り入れたいとき
  • 化学式や単位表記などの表現を自動整形したい場合

注意点

  • Superscript = True書式上の見た目の調整であり、セルの値そのものは変更されません。
  • Characters プロパティは文字列でないセル(数値・数式など)には使用できません。
  • 結合セルには対応していません。使用する場合は解除してから処理してください。

代替案:Unicodeによる擬似表現

簡易的に「²(U+00B2)」や「³(U+00B3)」などのUnicode文字を使うことも可能です。以下のように入力することで、VBAなしでも上付き表現が可能です:

Range("E2").Value = "a² + b"

ただし、対応している文字が限られており、4以降の上付き数字などには非対応です。

まとめ

本記事では、VBAを使用してセル内の一部文字列を上付き(Superscript)にする方法をご紹介いたしました。

方法特徴
.Characters(...).Font.Superscript = True見た目として数式・単位・注釈などを美しく整えることが可能
Unicode文字の使用すぐに使えるが、使える記号が限られている

数式や注釈を正確に表現したい場面では、VBAによる細かい書式設定が非常に役立ちます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次