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

即効テクニック

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

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

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

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

 設定項目   内容
  Object     Rangeオブジェクト
  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