関数・メソッド

セル入力された文字列の一部を参照・修正する【Charactersプロパティ】【ExcelVBA】

構文

Object.Characters(Start , Length)
Start・・・・文字列の参照スタート位置を指定。省略時は1 Length・・・参照したい文字数を指定。省略時はStart以降全て
RangeオブジェクトのCharactersプロパティで、 セルに入力された文字列の一部を取得や、修正をします。

ワークシートの表示・非表示を変更するコードサンプル

Public Sub sample()

    '■データ参照する場合
    Debug.Print Range("A1").Characters(1, 3).Text   'セルA1の1文字目から3文字を取得
    Debug.Print Range("A1").Characters(3, 2).Text   'セルA1の3文字目から2文字を取得
    
    '■文字列を修正する場合
    Range("A1").Characters(2, 1).Text = "あ" 'セルA1の2文字目から1文字を"あ"に変更
    Range("A1").Characters(2, 1).Text = "ああ" 'セルA1の2文字目から1文字を"ああ"に変更
    '※文字数に整合性がなくてもそのまま追加されます。
    '例 1234→1ああ34
    
    '■引数省略の場合
    Debug.Print Range("A1").Characters(, 5).Text   'セルA1の1文字目から5文字を取得
    Debug.Print Range("A1").Characters(1).Text     'セルA1の1文字目から以降、全ての文字を取得

    '■フォントの太さや文字の大きさ、フォントカラーなどももちろん変更可能です。
    Range("A1").Characters(1, 1).Font.Bold = True
    Range("A1").Characters(1, 1).Font.Size = 20
    Range("A1").Characters(1, 1).Font.ColorIndex = 5

End Sub

注意点

  • 文字列全体を修正する場合は Charactersプロパティ を使用する意味はありません。
  • 入力されたセルが数式の場合、エラーが発生します。 実行時エラー ‘1004’:アプリケーション定義またはオブジェクト定義のエラーです。
  • 入力されたセルが数字のみの場合、エラーが発生します。 実行時エラー ‘1004’:アプリケーション定義またはオブジェクト定義のエラーです。
  • 取得するLengthは文字数です。バイト数ではありません。

関連記事

コメント

タイトルとURLをコピーしました