範囲の文字列を結合する関数
マクロ講座45回 ユーザー定義関数
![範囲の文字列を結合するユーザー定義関数](gazo2013/2013_macro_45.png)
![範囲の文字列を結合するユーザー定義関数](gazo2013/2013_macro_45.png)
ユーザー定義関数を作成して文字列を結合する Excel 2013 マクロ講座 45回
ユーザー定義関数で文字列結合
ユーザー定義関数の作り方を徹底的にマスターしましょう。それには何度も反復するのが一番です。
今回は、指定範囲の文字列を結合するユーザー定義関数です。
(サンプルファイルは、こちらから マクロ45回サンプルデータ)
文字列を結合するユーザ定義関数
ユーザ定義関数を作るには、VBEエディターを起動し、Functionプロシージャの構文にそってコードを入力します。
![ユーザー定義関数](gazo2013/macro/function.png)
![ユーザー定義関数](gazo2013/macro/function.png)
マクロや関数を使わずに、簡単に文字列を結合するには、&を使ってセルを結合することで表示したいセルに結合して文字列を表示できます。
![指定範囲の文字列を結合するユーザー定義マクロ1](gazo2013/macro/2013_macro_45_01.png)
![指定範囲の文字列を結合するユーザー定義マクロ1](gazo2013/macro/2013_macro_45_01.png)
ユーザー定義関数も、同じように&(アンパサンド)を利用して、セルの値を結合しましょう。
プロシージャ名は任意ですが、ここでは MergeStringsという名前にして、引数の型は、Stringにします。
セル範囲の文字列を&でつなぐという操作は、For Eachで行います。
![指定範囲の文字列を結合するユーザー定義マクロ2](gazo2013/macro/for_each_next.png)
プロシージャ名は任意ですが、ここでは MergeStringsという名前にして、引数の型は、Stringにします。
セル範囲の文字列を&でつなぐという操作は、For Eachで行います。
![指定範囲の文字列を結合するユーザー定義マクロ2](gazo2013/macro/for_each_next.png)
引数名は、わかりやすくセル範囲と日本語にしていますが、
理解できたら、単純にセルを意味するcとかにしても良いかと思います。
また結合してできた文字列をtempStrという変数に宣言しています。
![指定範囲の文字列を結合するユーザー定義マクロ3](gazo2013/macro/2013_macro_45_03.png)
Function MergeStrings(セル範囲 As Range) As String Dim tempStr As String For Each セル範囲 In セル範囲 tempStr = tempStr & セル範囲.Value Next セル範囲 MergeStrings = tempStr End Function関数ですから、好きなところで利用できるのがメリットです。
![指定範囲の文字列を結合するユーザー定義マクロ3](gazo2013/macro/2013_macro_45_03.png)
結合する文字列の間にスペースを入れると、
![指定範囲の文字列を結合するユーザー定義マクロ4](gazo2013/macro/2013_macro_45_04.png)
tempStr = tempStr & セル範囲.Value & " "名前を結合するなどに利用できます。
![指定範囲の文字列を結合するユーザー定義マクロ4](gazo2013/macro/2013_macro_45_04.png)