「エクセル VBA マクロ 小数点以下 上付き」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
小数点以下の数値を上付き文字にするVBA(Visual Basic for Applications)マクロを探している方です。
以下のようなマクロはいかがでしょうか。
' 選択されている全てのセルの小数点より後を上付き文字にする
Dim c As Range
Dim val As Variant
Dim pos As Long
If TypeName(Selection) <> "Range" Then Exit Sub
For Each c In SelectionWith c
val = .Value
If IsNumeric(val) Then
pos = InStr(val, ".") ' 小数点位置の取得
.Value = "'" & val ' 文字列にするためにシングルクォートを追加
.Characters(Start:=pos + 1).Font.Superscript = True ' 上付き文字に
End If
End With
Next c
End Sub
メインの処理はループ文の中の
pos = InStr(val, ".")
.Value = "'" & val
.Characters(Start:=pos + 1).Font.Superscript = True
の部分です。
変数「pos」に小数点の位置を格納して、
pos = InStr(val, ".")
数値を上付き文字にするために先頭に「'」(シングルクォート)を入力して文字列にし、
.Value = "'" & val
小数点より後の文字列を上付き文字にしています。
.Characters(Start:=pos + 1).Font.Superscript = True
このメインの処理に入る前に数値かどうか、チェックしています。
If IsNumeric(val) Then
またループ処理に入る前に選択されているのがセルかどうかもチェックしています。
If TypeName(Selection) <> "Range" Then Exit Sub
Home » エクセルマクロ・Excel VBAの使い方 » Charactersオブジェクト » 小数点以下を上付き文字にするマクロ-Font.Superscript