Home » エクセルマクロ・Excel VBAの使い方 » Charactersオブジェクト » Excel VBAで先頭の文字を削除する-Characters.Delete

Excel VBAで先頭の文字を削除する-Characters.Delete

動作検証バージョン:Windows版Excel(バージョン1809 ビルド10827.20181)

VBAのMid関数を使った、

VBA.Strings.Mid

セルの一文字目・先頭の文字を削除するExcelマクロをご紹介しています。

[スポンサードリンク]

同じことを、Rangeオブジェクトの子オブジェクトである、CharactersオブジェクトのDeleteメソッドを使ってもできます。

先頭文字を削除するサンプルマクロ

以下のSubプロシージャで、A1:A5セルの先頭文字列を削除できます。

Sub セルの先頭1文字を削除する()
 Dim rng As Range
 For Each rng In Range("A1:A5")
  rng.Characters(Start:=1, Length:=1).Delete
 Next
End Sub

サンプルマクロで行っている処理

Range.Charactersプロパティの、

Excel.Range.Characters

引数StartとLengthの両方に「1」を指定すると、セルの先頭1文字を表すCharactersオブジェクトを取得できます。

取得したCharactersオブジェクトのDeleteメソッドを実行して、

Excel.Characters.Delete

1文字目を削除しています。

Mid関数を使った方法よりも、オブジェクト指向なコードだと感じます。

Range.Charactersプロパティの引数

Range.Charactersプロパティをご存知ない方向けに名前付き引数を使って、

rng.Characters(Start:=1, Length:=1).Delete

としていますが、標準引数を使った、

rng.Characters(1, 1).Delete

でも、それほど可読性は落ちないだろうと感じます。

ショートカットキー[Ctrl]+[I]でヒントも表示されますし、

[Ctrl]+[I]でRange.Charactersのヒントを表示している状態

コードの1行当たり文字数という観点では、

rng.Characters(1, 1).Delete

のほうが優れているとも感じます。

最終更新日時:2019-11-24 06:38

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Charactersオブジェクト » Excel VBAで先頭の文字を削除する-Characters.Delete

Copyright © インストラクターのネタ帳 All Rights Reserved.

.