オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【Excel VBA エキスパート ベーシック】文字列系の関数 Format (書式を指定する) (VBA入門28)

 

Format関数

Format関数は、指定した値を指定した「書式」に変換した文字列の値を返します。

 

構文

Format(値)
値をそのまま文字列に変換します。

Format(値,書式)
値を指定した書式の文字列に変換します。

 

書式の記号について

f:id:auroralights:20210106001139p:plain

f:id:auroralights:20210106001200p:plain

f:id:auroralights:20210106001218p:plain

Format関数のサンプルコード

A列の値を指定した書式でB列に代入しています。書式の"000000"についてはあらかじめExcelのB2の書式を文字列に変えておかないと0が欠けてしまいます。

f:id:auroralights:20210105235218p:plain

f:id:auroralights:20210105235537p:plain

 

【Excel VBA エキスパート ベーシック】文字列系の関数 Replace~文字を置換する~ (VBA入門27)

 

Replace関数について

Replaceは引数に指定した文字列に対して、引数の検索文字列を引数の置換文字列に置換する関数になります。引数に開始位置、置換回数、比較モードを指定することもできます。

 

構文

Replace(文字列,検索文字列,置換文字列)
文字列内の検索文字列を置換文字列に置換する。
※バイナリモードでの比較となります。

Replace(文字列,検索文字列,置換文字列,開始位置,置換回数,比較モード)
置換する開始位置、複数の検索文字列がある場合に置換する回数を指定できます。比較モードで大文字・小文字、全角・半角などを区別することができます。

<引数について>

f:id:auroralights:20210105232303p:plain

<比較モードについて>

f:id:auroralights:20210104235801p:plain

※比較モードにはvbUseCompareOptionというモードもありますが、省略しています。vbBinaryCompare、vbTextCompareを認識していればいいかと思います。

 

詳しくは
Replace 関数 (Visual Basic for Applications) | Microsoft Docs

Replace関数のサンプルコード

D列の「山田 花子」を「鈴木 花子」に置換するコードです。 

f:id:auroralights:20210104232115p:plain

f:id:auroralights:20210104232144p:plain

 

 Replace関数のサンプルコード2:特定の文字を削除する

検索文字を「""」に置換することで、その検索文字を削除することができます。以下のコードでは、半角スペース「" "」を[""」に置換し、削除しています。

f:id:auroralights:20210105231005p:plain

f:id:auroralights:20210105230936p:plain

 

Replace関数のサンプルコード3:vbTextCompare、vbBinaryCompare

vbBinaryCompare、vbTextCompareを指定する際は、開始位置、置換回数を指定する必要があります。省略することはできません。

 

vbTextCompare:全角半角・大文字小文字を区別しない

A1は開始位置と置換回数が指定されていないため、置換が出来ていません。(Replace("abcdef","A","B",1,1,vbTextCompare)と開始位置・置換回数を指定すると置換されます)

A2は開始位置と置換回数が指定されているため、「a」を「B」に置換しています。(置換文字列は「A」ですが、vbTextCompareのため、大文字小文字を区別せず、「a」を「B」に置換しています。)

f:id:auroralights:20210105232542p:plain

f:id:auroralights:20210105232552p:plain

 

vbBinaryCompare:全角半角、大文字小文字を区別する

A3は引数が正しくない(比較モードを指定しているが、開始位置・置換回数が指定されていない)ため、エラーとなるのでコメントアウトしています。

A4は「a」を「b」に置換しています。

A5は「A」を「B」に置換するコードですが、大文字小文字を区別するため、文字列「abcdef」では置換されずにそのままの文字列が返されています。

f:id:auroralights:20210105233059p:plain

 

【Excel VBA エキスパート ベーシック】文字列系の関数 Trim・LTrim・Rtrim (空白を削除する) (VBA入門26)

 

Trim関数、LTrim関数、RTrim関数について

Trim関数、LTrim関数、RTrim関数はスペース(空白)を削除する関数です。

  • Trim関数:引数に指定した文字列の左右にある空白を削除します。
  • LTrim関数:引数に指定した文字列の左側にある空白を削除します。
  • RTrim関数:引数に指定した文字列の右側にある空白を削除します。

※空白は半角スペース(1バイト)・全角スペース(2バイト)に関わらず削除します。
※VBAでなくワークシート関数のTrim関数は、文字間に空白がある場合は文字間の最初の空白を削除しますが、VBA関数では文字間の空白は削除しません。

 

構文

  • Trim(文字列)
  • LTrim(文字列)
  • RTrim(文字列)

 

Trim関数のサンプルコード

B列の文字列をTrim関数で左右の空白を削除して、C列に格納しています。

f:id:auroralights:20210102143022p:plain

f:id:auroralights:20210102143001p:plain

文字列の左右の空白は全角・半角の区別なく全て削除されています。文字間の空白は削除されず、そのままです。

 

LTrim関数のサンプルコード

B列の文字列をLTrim関数で文字列の左側の空白を削除してC列に格納しています。

f:id:auroralights:20210102144139p:plain

f:id:auroralights:20210102144117p:plain

文字列の左側の空白が削除されました。文字間・右側の空白は削除されず、残っています。

 

RTrim関数のサンプルコード

B列の文字列をRTrim関数で文字列の右側の空白を削除してC列に格納しています。

f:id:auroralights:20210102144657p:plain

f:id:auroralights:20210102144634p:plain

文字列の右側の空白が削除されています。左側・文字間の空白は削除されません。