ExcelVBAで文字列操作

みなさん、こんにちは。
ExcelVBAでは様々なデータを処理します。そのなかでもやはり文字列操作は欠かせません。 今回はよく利用する文字列操作に関して学びましょう。

| 文字列の長さを取得する

文字列の長さはLen()で取得できます。空文字を指定すると0を返します。

なお、LenB()という関数もあり、こちらは文字列長ではなく、バイト数を返却します。 VBAは文字列をUnicodeで扱います。 そのため、日本語を扱う場合、文字列長と文字列バイト長が一致しません。 文字列のサイズを純粋に取得したい場合は、LenB()を利用します。

 

| 文字が含まれる位置を確認する

ある文字列の中に、指定した文字、または文字列が含まれているかどうかを確認するには InStr()を利用します。これは文字列が含まれていないと0を返します。 また、文字列が含まれている場合は文字列の位置を返却するため、 この関数を使って、文字列スライスに活用することができます。

InStrRev()という関数もあり、こちらは文字列の末尾から文字列の位置を検索します。 そのため、同じ文字列が文字列内に複数回出現する場合は、後ろ側の文字列の位置を返します。

 

| 文字列を切り出す

文字列内に含まれる一部の文字列を切り出したい場合があります。 そうした場合は、Left()関数やMid()関数を利用します。 これらを使えば、指定した文字位置までの文字列を切り出せます。

 

| 文字列を置換する

文字列内に含まれるある文字列を別の文字列に置き換える場合はReplace()を利用します。 置換した結果の文字列は、別の変数に代入しないと反映されません。

 

| 文字列を分割・連結する

CSVファイルなど、区切り文字であるスペース( )やカンマ(,)で区切られた文字列を 分割したい場合があります。そうした場合はSplit()関数を利用します。

なお、分割した文字列は別の区切り文字を使ってJoin()関数を使えば、 連結も容易です。配列形式になったものであれば連結可能です。

 

文字列を操作する関数は他にも様々なあります。 ここで紹介した関数を使えば、たいていの処理はできますので覚えておいて損はありません。 どんどん使いこなして、業務を効率化しましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です