セルに入力された文字列の一部を参照する(Charactersプロパティ)|Excel VBA |
セルに入力された文字列の何文字目(Start)から何文字(Length)分の文字を表すCharactersオブジェクトを参照します。文字列のうち、特定の部分だけを修正したい場合に使用します。文字列全体を修正したい場合には使用する必要はありません。また、セルに入力されているのが数値や数式の場合にはエラーが発生します。空白セルの場合は動作します。
構文 Object.Characters(Start, Length) 取得のみ
| 設定項目 | 内容 |
|---|---|
| Object | Rangeオブジェクト |
| Start | 参照したい文字列の先頭位置を指定します。省略した場合は1 |
| Length | 参照したい文字数を指定します。省略した場合はStart以降の全文字列 |
次のサンプルは、指定した部分の文字を別の文字に設定し直します。
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文字目を太字で文字を大きくして、各行番号に相当する位置のフォントをイタリック体にします。
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