Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Excel VBAでスペースごとに配列変数に格納する-Split関数

Excel VBAでスペースごとに配列変数に格納する-Split関数

対象:Excel2007, Excel2010, Excel2013

Excel VBAでスペースごとに配列変数に格納する-Split関数

「vba スペースごとに配列に格納」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

何らかの文字列を、スペースごとに区切って配列に格納するVBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

半角スペースごとに区切って配列に格納するサンプルマクロ

以下のようなマクロで、アクティブセルに入力されている文字列を、スペースごとに配列変数に格納することができます。

Sub 半角スペースごとに配列変数に格納する()

 Dim arr As Variant

 arr = Split(ActiveCell.Value)

 Stop

End Sub

上記のマクロを実行すると、Stop文の箇所でステップ実行モードになります。
ステップ実行中にメニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示すれば、配列変数・arrに、スペースごとに、アクティブセルの値がスペースごとに格納されているのを確認できるでしょう。

Excel VBAでスペースごとに配列変数に格納する-Split関数

上図は、「a b c」と入力されたセルを選択した状態で、上記のマクロを実行してStop文でステップ実行モードになった状態です。

スペースごとに配列変数に格納しているのは
 arr = Split(ActiveCell.Value)
の部分です。

Split関数は、何らかの区切り文字を含む文字列から、1次元配列を作成して返す関数です。

第1引数に元の文字列、第2引数に区切り文字を指定しますが、第2引数を省略した場合、半角スペースを区切り文字と見なします。

第2引数を省略せずに、
 arr = Split(ActiveCell.Value, " ")
としても同じ結果が得られます。

全角スペースごとに区切って配列に格納するサンプルマクロ

全角スペースごとに区切って配列変数に格納するのなら、以下のようなマクロです。

Sub 全角スペースごとに配列変数に格納する()

 Dim arr As Variant

 arr = Split(ActiveCell.Value, " ")

 Stop

End Sub

Split関数の第2引数に全角スペースを指定すれば、
 arr = Split(ActiveCell.Value, " ")
全角スペースごとに、文字列が配列に格納されます。

スペースごとに区切って配列に格納するサンプルマクロ

半角か全角かいずれかのスペースごとに区切って配列変数に格納するのなら、以下のようなマクロでしょうか。

Sub スペースごとに配列変数に格納する()

 Dim arr As Variant
 Dim tmp As String

 tmp = ActiveCell.Value
 tmp = Replace(tmp, " ", " ")

 arr = Split(tmp)

 Stop

End Sub

Replace関数を使って、
 tmp = ActiveCell.Value
 tmp = Replace(tmp, " ", " ")
元データの全角スペースを、半角スペースに置換しておいてから、

Split関数です。
 arr = Split(tmp)

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Excel VBAでスペースごとに配列変数に格納する-Split関数

「配列」の記事一覧

検索


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

.