Home » エクセルマクロ・Excel VBAの使い方 » Charactersオブジェクト » 小数点以下を上付き文字にするマクロ-Font.Superscript

小数点以下を上付き文字にするマクロ-Font.Superscript

対象:Excel2003, Excel2007, Excel2010

「エクセル VBA マクロ 小数点以下 上付き」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

小数点以下の数値を上付き文字にするVBA(Visual Basic for Applications)マクロを探している方です。

[スポンサードリンク]

以下のようなマクロはいかがでしょうか。

Sub 小数点以下を上付き文字にする()
' 選択されている全てのセルの小数点より後を上付き文字にする

 Dim c As Range
 Dim val As Variant
 Dim pos As Long

 If TypeName(Selection) <> "Range" Then Exit Sub

 For Each c In Selection
  With 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

Copyright © インストラクターのネタ帳 All Rights Reserved.

.