セルに入力されている文字列に対して特定の文字のみ上付き文字に変換したいケースがあります。ExcelVBAで上付き文字に変換するにはFont.Superscriptプロパティを使用します。この上付き文字の変換方法について紹介します。
構文
記述方法は以下の通りとなります。
Range(”[セル範囲]”).Characters([開始文字],[桁数])
.Font.Superscript = True or False
[説明]:
特定文字に対して上付き文字に変換するには
「Range(”[セル範囲]”).Characters([開始文字],[桁数])
.Font.Superscript = True」
と記述します。また、設定した上付き文字を元に戻すには
「Range(”[セル範囲]”).Characters([開始文字],[桁数])
.Font.Superscript = False」
と記述します。
[セル範囲] | 文字が入力されているセル範囲を記述します。 ※「”」(ダブルクォーテーション)で囲みます。 |
[開始文字] | 文字列中の何文字目から上付き文字にするかを記述します。 |
[桁数] | [開始文字]で指定した文字から変換する何桁を記述します。 |
※上記の設定は、セルの書式設定画面の上付き設定と同じ意味になります。
[記述例]:
Range("A1").Characters(2, 2).Font.Superscript = True
Range("A1").Characters(2, 2).Font.Superscript = False
使い方
使い方について具体的に説明します。
文字列中の文字を上付き文字に変換する方法
文字列中の文字を上付き文字に変換する方法について説明します。
[プログラミング例]:
Sub 上付き設定()
Range("A1").Characters(2, 2).Font.Superscript = True
MsgBox "上付きを設定しました。"
End Sub
内容は、「A1セル中の文字列の2桁目から2桁を上付き文字に変換し、最後にMsgBoxで”上付きを設定しました。”のメッセージを表示して下さい。」との意味になります。
※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①A1セルに「216」の文字列が入力されています。<設定>ボタンをクリックします。このボタンには上記のプログラミング例のプログラムが登録されています。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)
②結果は以下の様になります。A1セルの「216」の2桁目から2桁が上付き文字に変換され、MsgBoxで「上付きを設定しました。」が表示されます。
文字列中の文字を上付き文字に変換する方法についての説明は以上です。
文字列中の上付き文字を解除する方法
文字列中の上付き文字を解除する方法について説明します。
[プログラミング例]:
Sub 上付き解除()
Range("A1").Characters(2, 2).Font.Superscript = False
MsgBox "上付きを解除しました。"
End Sub
内容は、「A1セル中の文字列の2桁目から2桁の上付き文字を解除し、最後にMsgBoxで”上付きを解除しました。”のメッセージを表示して下さい。」との意味になります。
※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
①A1セルに「216」の文字列が入力されており、2桁目から2桁が上付き文字に設定されています。<解除>ボタンをクリックします。このボタンには上記のプログラミング例のプログラムが登録されています。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)
②結果は以下の様になります。A1セルの「216」の2桁目から2桁の上付き文字が解除され、MsgBoxで「上付きを解除しました。」が表示されます。
文字列中の上付き文字を解除する方法についての説明は以上です。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
おわりに
今回は文字列中の文字を上付き文字に変換する方法について説明しました。類似内容に取り消し線の設定や下付き文字の設定もあります。こちらも参考にして下さい。