Excel VBA セルの文字列に文字飾りを設定する

スポンサーリンク
スポンサーリンク

セルの文字列に文字飾りを設定する方法

セルをマウスで右ボタンクリックしたときに
表示されるショートカットメニューの
「セルの書式設定」を選択したとき表示される
「セルの書式設定」ダイアログの「フォント」ダブの
「文字飾り」設定の
「取り消し線」「上付き文字」「下付き文字」を
VBAで設定する方法について解説します。



実行例



文字飾りの設定で使用するプロパティ一覧

プロパティ内容
Characters
【キャラクターズ】
文字の範囲を表すChatactersオブジェクトを返します。
Characters.Count
【キャラクターズカウント】
コレクションに含まれるオブジェクトの数を表す
長整数型 (Long) の値を返します。
Strikethrough
【ストライクスルー】
取り消し線を設定します。
Superscript
【スーパースクリプト】
上付き文字に設定します。
Subscript
【サブスクリプト】
下付き文字に設定します。

Characters【キャラクターズ】プロパティ

セル内の文字列の範囲を参照して
文字列範囲を表すCharacters【キャラクターズ】オブジェクトを取得するには
Rangeオブジェクトの
Characters【キャラクターズ】プロパティを使用します。

Characters【キャラクターズ】プロパティの書式

[]内は省略可能です。
オブジェクト.Characters( [Start, Length] )


設定値(引数)の説明

  • オブジェクト(必須)
    対象となる文字列があるセルをRangeオブジェクトで指定します。
  • Start【スタート】(省略可)
    参照する文字の先頭を先頭から数えた数値で指定します。
    この引数に 1 を指定するか省略すると、文字の先頭から参照します。
  • Length【レングス】(省略可)
    参照する文字数を指定します。
    省略した場合は引数Startで設定した先頭文字以降の文字をすべて参照します。

Characters.Count【キャラクターズカウント】プロパティ

文字列範囲を表すCharacters【キャラクターズ】オブジェクトに
含まれる文字数を取得するには
Rangeオブジェクトの
Characters.Count 【キャラクターズカウント】プロパティを使用します。

Characters.Count【キャラクターズカウント】プロパティの書式

オブジェクト.Characters.Count
【戻り値】長整数型の値


設定値の説明

  • オブジェクト(必須)
    対象となる文字列があるセルをRangeオブジェクトで指定します。

Strikethrough【ストライクスルー】プロパティ

指定した文字列に水平な取り消し線を設定するには
セルの書式設定を表す
Font【フォント】オブジェクトの
Strikethrough 【ストライクスルー】プロパティを使用します。

Font.Strikethrough【フォントストライクスルー】プロパティの書式

オブジェクト.Font.Strikethrough = 設定値


設定値の説明

  • オブジェクト(必須)
    取り消し線をひく文字列があるセルをRangeオブジェクトまたは
    文字列範囲を表すCharacters【キャラクターズ】オブジェクトで指定します。
  • 設定値(必須)
    取り消し線を設定する場合は「True」を設定します。

Superscript【スーパースクリプト】プロパティ

指定した文字列を上付き文字に設定するには
セルの書式設定を表す
Font【フォント】オブジェクトの
Superscript【スーパースクリプト】プロパティを使用します。

Font.Superscript【フォントスーパースクリプト】プロパティの書式

オブジェクト.Font.Superscript = 設定値


設定値の説明

  • オブジェクト(必須)
    上付き文字に設定する文字列があるセルをRangeオブジェクトまたは
    文字列範囲を表すCharacters【キャラクターズ】オブジェクトで指定します。
  • 設定値(必須)
    上付き文字を設定する場合は「True」を設定します。

Subscript【サブスクリプト】プロパティ

指定した文字列を下付き文字に設定するには
セルの書式設定を表す
Font【フォント】オブジェクトの
Subscript【サブスクリプト】プロパティを使用します。

Font.Subscript【フォントサブスクリプト】プロパティの書式

オブジェクト.Font.Subscript = 設定値


設定値の説明

  • オブジェクト(必須)
    下付き文字に設定する文字列があるセルをRangeオブジェクトまたは
    文字列範囲を表すCharacters【キャラクターズ】オブジェクトで指定します。
  • 設定値(必須)
    下付き文字を設定する場合は「True」を設定します。

取り消し線、上付き文字、下付き文字を設定するコード例

Sub 文字飾り()
Dim 文字数 As Long
文字数 = Range("B2").Characters.Count
Range("B1").Font.Strikethrough = True
Range("B2").Characters(文字数, 1).Font.Superscript = True
Range("B3").Characters(2, 1).Font.Subscript = True
End Sub

コードの解説

2行目
【Dim 文字数 As Long】

B2セルに入力されている文字列の数を格納する
変数「文字数」を長整数型(Long)で宣言します。


3行目
【文字数 = Range(“B2”).Characters.Count】

B2セルの文字列の数を
Characters【キャラクターズ】オブジェクトの
Count【カウント】プロパティで取得して変数「文字列」に代入します。
B2セルの値が文字列ではない場合は
Characters.Countプロパティはエラーになります。


4行目
【Range(“B1”).Font.Strikethrough = True】

B1セルの値に
Font【フォント】オブジェクトの
Strikethrough【ストライクスルー】プロパティに
Trueを設定して取り消し線を設定します。


5行目
【Range(“B2”).Characters(文字数, 1).Font.Superscript = True】
B2セルの文字列を
Characters【キャラクターズ】プロパティで
引数StartにB2セルの文字数が格納されている変数「文字数」を設定して
B2セルの最後の文字列を参照して
Font【フォント】オブジェクトの
Superscript【スーパースクリプト】プロパティに
Trueを設定して上付き文字を設定します。


6行目
【Range(“B3”).Characters(2, 1).Font.Subscript = True】
B3セルの文字列を
Characters【キャラクターズ】プロパティで
引数Startに2を設定し文字列に先頭から
2番目の文字列を参照して
Font【フォント】オブジェクトの
Subscript【サブスクリプト】プロパティに
Trueを設定して下付き文字を設定します。


実行結果


以上で
セルの文字列に文字飾りを設定する方法についての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク