HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > セルに入力された文字列の一部を参照する(Charactersプロパティ)

セルに入力された文字列の一部を参照する(Charactersプロパティ)|Excel VBA

セル操作関連のテクニック

セルに入力された文字列の一部を参照する(Charactersプロパティ)

(Excel 2000/2002/2003/2007/2010/2013/2016)

セルに入力された文字列の何文字目(Start)から何文字(Length)分の文字を表すCharactersオブジェクトを参照します。文字列のうち、特定の部分だけを修正したい場合に使用します。文字列全体を修正したい場合には使用する必要はありません。また、セルに入力されているのが数値や数式の場合にはエラーが発生します。空白セルの場合は動作します。

構文 Object.Characters(Start, Length) 取得のみ

設定項目 内容
ObjectRangeオブジェクト
Start参照したい文字列の先頭位置を指定します。省略した場合は1
Length 参照したい文字数を指定します。省略した場合はStart以降の全文字列
 

次のサンプルは、指定した部分の文字を別の文字に設定し直します。

●サンプル1●

Sub CharactersSamp1()
    Range("A1").Characters(1, 1).Text = "1"   '1文字目を"1"に変更
    Range("A2").Characters(2, 3).Text = "222" '2文字目から3文字分を"222"に変更
    Range("A3").Characters(2).Text = "3"      '2文字目以降を"3"に変更
    Range("A4").Characters(10, 1).Text = "4"  '10文字目を"4"に変更
    Range("A5").Characters(0, 0).Text = "5"   '0〜0文字目を"5"に変更
    Range("A6").Characters(3, 2).Text = "6"   '3文字目から2文字分を"6"に変更
End Sub

実際には文字が存在しない部分に関しても、指定が可能になっている点にご注意ください。
文字単位でのフォントの書式の変更も可能です。次のコードは、1文字目を太字で文字を大きくして、各行番号に相当する位置のフォントをイタリック体にします。

●サンプル2●

Sub CharactersSamp2()
    Dim i As Integer

    With Range("A1:A5").Characters(1, 1).Font      '---1文字目の書式変更
        .Bold = True
        .Size = 16
    End With
    For i = 1 To 5
        Cells(i, 1).Characters(i, 1).Font.Italic = True
    Next i
End Sub