検索

キーワード


【Excel VBA】文字列・数値を操作する関数の紹介

  • 公開日:2021-04-16 23:12:29
  • 最終更新日:2021-04-16 23:14:45

こんにちは。IMMRです。ExcelVBAには、文字列・数値を操作する関数は多数あります。

「頻繁に使われるもの」もあれば「あまり使われないもの」もありますがいくつか紹介していきます。

文字列・数値を操作をする関数

文字列・数値を操作をする関数① 【置換する】

置換するには、Replase関数を使用します。

文字列の中に指定した文字があった場合、置換します。

書き方 Replace(置換したい文字列指定した文字置換したい文字、開始する位置、置換回数)

開始する位置と置換回数は省略できます。


サンプルコード

Sub TEST1()
    MsgBox Replace("ABCDEFG", "DEF", "ZYX")                               ・・・1-1
    MsgBox Replace("ABCABCABCABC", "ABC", "UVW")                             ・・・1-2
    MsgBox Replace("ABCABCABCABC", "ABC", "UVW", 2)                           ・・・1-3
    MsgBox Replace("ABCABCABCABC", "ABC", "UVW", 2, 1)                         ・・・1-4
End Sub

1-1の実行結果は、「ABCZYXG」

1-2の実行結果は、「UVWUVWUVWUVW

1-3の実行結果は、「BCUVWUVWUVW

1-4の実行結果は、「BCUVWABCABC」とメッセージボックスが表示されます。


文字列・数値を操作をする関数② 【抜き出す】

抜き出すには、Left関数Right関数Mid関数のいずれかを使用します。

Left関数は、文字列の左から指定した数の文字を取得します。

Right関数は、文字列の右から指定した数の文字を取得します。

Mid関数は、文字列列の指定した位置から指定した文字を取得します。

「書き方」 Left(文字列, 文字数), Right(文字列文字数), Mid(文字列開始位置文字数)


サンプルコード

Sub TEST2()
    MsgBox Left("ABCDEFG", 3)                                       ・・・2-1
    MsgBox Right("ABCDEFG", 3)                                       ・・・2-2
    MsgBox Mid("ABCDEFG", 3, 4)                                      ・・・2-3
End Sub

2-1の実行結果は、「ABC

2-2の実行結果は、「EFG

2-3の実行結果は、「CDEF」とメッセージボックスが表示されます。


文字列・数値を操作をする関数③ 【検索して、あった位置を表示する】

検索して、あった位置を表示するときはInstr関数を使用します。

文字列の中に指定した文字があるか確認し、あった場合位置を表示します。

「書き方」 Instr(開始する位置, 文字列, 検索したい文字)

※開始する位置は省略できます。


サンプルコード

Sub TEST3()
    MsgBox InStr("ABCDEFG", "EFG")                                    ・・・3-1
    MsgBox InStr(2, "ABCABCABCABC", "ABC")                                ・・・3-2
End Sub

3-1の実行結果は、「5

3-2の実行結果は、「4とメッセージボックスが表示されます。


文字列・数値を操作をする関数④ 【スペースを削除をする】

スペースを削除するにはTrim関数LTrim関数RTrim関数を使用します。

Trim関数は、文字列の左から指定した数の文字を取得します。

LTrim関数は、文字列の左側にあるスペースを削除します。

RTrim関数は、文字列の右側にあるスペースを削除します

「書き方」 Trim(文字列), LTrim(文字列), RTrim(文字列)


サンプルコード

※下記サンプルコードでは、スペースが削除されているかをわかりやすくするために前後に"*"を付与しています。

Sub TEST4()
    MsgBox "*" & RTrim(" あいうえお ") & "*"                               ・・・4-1
    MsgBox "*" & LTrim(" あいうえお ") & "*"                               ・・・4-2
    MsgBox "*" & Trim(" あいうえお ") & "*"                               ・・・4-3
End Sub

4-1の実行結果は、「* あいうえお*

4-2の実行結果は、「*あいうえお *」 

4-3の実行結果は、「*あいうえお*とメッセージボックスが表示されます。


文字列・数値を操作をする関数⑤ 【数値かを判定する】

数値かを判別するにはIsNumeric関数を使用します。

数値かをTrueまたはFalseで判定します。

「書き方」 IsNumeric(文字列)


サンプルコード

Sub TEST5()
    MsgBox IsNumeric(123)                                         ・・・5-1
    MsgBox IsNumeric("ABC")                                        ・・・5-2
End Sub

5-1の実行結果は、「TRUE」 

5-2の実行結果は、「FALSEとメッセージボックスが表示されます。


文字列・数値を操作をする関数⑥ 【形式を判別する】

形式を判別するにはTypeName関数を使用します。

形式(LongやString等)を出力します

「書き方」 TypeName(文字列)


サンプルコード

Sub TEST6()
    MsgBox TypeName(123)                                         ・・・6-1
    MsgBox TypeName(1234567890)                                      ・・・6-2
    MsgBox TypeName("ABC")                                        ・・・6-3
End Sub

6-1の実行結果は、「Integer」 

6-2の実行結果は、「Long

6-3の実行結果は、「String」とメッセージボックスが表示されます。 


文字列・数値を操作をする関数⑦ 【形式を変換する】

形式を変更するには、StrConv関数を使用します。

定数箇所を変更して、形式内容を決定します。

「書き方」 Strconv(文字列, 定数

定数一覧

定数処理内容
vbUpperCase文字列を文字のアルファベットを大文字に変換します
vbLowerCase文字列を大文字のアルファベットを小文字に変換します
vbProperCase文字列を先頭のみ大文字に変換します
vbHiragana文字列をひらがな変換します
vbNarrow文字列をカタカナ変換します
vbKatakana
文字列を半角変換します
vbWide文字列を全角変換します


サンプルコード

Sub TEST7()
   MsgBox StrConv("abcdefg", vbUpperCase)                                ・・・7-1
   MsgBox StrConv("ABCDEFG", vbLowerCase)                                ・・・7-2
MsgBox StrConv("abcdefg", vbProperCase)                                ・・・7-3 MsgBox StrConv("アイウエオ", vbHiragana)                               ・・・7-4 MsgBox StrConv("あいうえお", vbKatakana)                                ・・・7-5 MsgBox StrConv("ABCDE", vbNarrow)                                 ・・・7-6 MsgBox StrConv("ABCDE", vbWide)                                    ・・・7-7 End Sub

7-1の実行結果は、「ABCDEFG」

7-2の実行結果は、「abcdefg」 

7-3の実行結果は、「Abcdefgとメッセージボックスが表示されます。

7-4の実行結果は、「あいうえお」 

7-5の実行結果は、「アイウエオとメッセージボックスが表示されます。

7-6の実行結果は、「ABCDE」 

7-7の実行結果は、「ABCDEとメッセージボックスが表示されます。


文字列・数値を操作をする関数⑧ 【書式を変更する】

書式を変更するには、Format関数を使用します。

記号箇所を変更して、書式内容を決定します。

「書き方」 Format(文字列, 記号

記号一覧

記号処理内容
##で指定した桁に数値が存在しない場合、0が出力されない
00で指定した桁に数値が存在しない場合、0が出力される
,「#」か「0」と合わせて使用し、数値の1000単位部分に「,」が記載される
.  や  -「#」か「0」と合わせて使用し、指定した位置に「.」が記載される
%数値を100倍して、「%」が記載される
&文字1つ分が記載され、存在しない場合、スペースが出力されない
@文字1つ分が記載され、存在しない場合、スペースが出力される


サンプルコード

※スペースの存在がわかるよう一部頭に"A"を頭に付与してします。

Sub TEST8()
   MsgBox Format(12345, "######")                                     ・・・8-1
   MsgBox Format(12345, "000000")                                     ・・・8-2
   MsgBox Format(12345, "000,000")                                    ・・・8-3
   MsgBox Format(12345, "@@@-@@")                                     ・・・8-4
   MsgBox Format(67890, "@@.@@@")                                     ・・・8-5
   MsgBox Format(0.98, "00%")                                       ・・・8-6
   MsgBox "A" & Format(12345, "@@@-@@@@")                                 ・・・8-7
   MsgBox "A" & Format(12345, "&&&-&&&&")                                ・・・8-8
End Sub

8-1の実行結果は、「12345」 

8-2の実行結果は、「012345」 

8-3の実行結果は、「012,345」 

8-4の実行結果は、「123-45」 

8-5の実行結果は、「67.890」 

8-6の実行結果は、「98%」

8-7の実行結果は、「A  1-2345」 

8-8の実行結果は、「A1-2345」とメッセージボックスが表示されます。


文字列・数値を操作をする関数⑨ 【Nullかを判定する】

Nullかを判別するにはIsNull関数を使用します。

NullかをTrueまたはFalseで判定します。

「書き方」 IsNull(文字列)


サンプルコード

Sub TEST9()
    MsgBox IsNull(Null)                                                                            ・・・9-1
    MsgBox IsNull("ABC")                                                                           ・・・9-2
    MsgBox IsNull(123)                                                                             ・・・9-3
End Sub

9-1の実行結果は、「TRUE」 

9-2の実行結果は、「FALSE

9-3の実行結果は、「FALSEとメッセージボックスが表示されます。


文字列・数値を操作をする関数⑩ 【小数点部分を取り除く】

小数点を取り除くにはInt関数Fix関数を使用します。

共に小数点を取り除きますが負の数である時、出力される数値が異なります。

Int関数は絶対値が大きくなる方に、Fix関数は絶対値が小さくなる方になります。

「書き方」 Int(文字列), Fix(文字列)


サンプルコード

Sub TEST10()
    MsgBox Int(100.5)                                          ・・・10-1
    MsgBox Fix(100.5)                                          ・・・10-2
    MsgBox Int(-100.5)                                          ・・・10-3
    MsgBox Fix(-100.5)                                          ・・・10-4
End Sub

10-1の実行結果は、「100」 

10-2の実行結果は、「100

10-3の実行結果は、「-101

10-4の実行結果は、「-100とメッセージボックスが表示されます。


文字列・数値を操作をする関数⑪ 【小数点部分の四捨五入をする】

小数点を四捨五入するにはRound関数を使用します。

通常の四捨五入とは異なるところがあります。

四捨五入を行う対象となる数値が「5」の場合、数値が偶数に近い絶対値になります。それ以外は通常の四捨五入です。

「書き方」 Round(文字列, 四捨五入後の小数点の桁数) 


サンプルコード

Sub TEST11()
    MsgBox Round(100.15, 1)                                       ・・・11-1
    MsgBox Round(100.25, 1)                                       ・・・11-2
End Sub

11-1の実行結果は、「100.2

11-2の実行結果は、「100.2」とメッセージボックスが表示されます。


【著者】

Imamura

今まではExcel VBAの開発をしてきました。
開発を主にしたものや他の業務の効率化を目指して行ったものさまざまです。
現在は、他のプログラミング言語に挑戦して、スキルアップを目指しています。

よく読まれている記事