「vba スペースごとに配列に格納」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
何らかの文字列を、スペースごとに区切って配列に格納するVBA(Visual Basic for Applications)のコードを探している方による検索です。
半角スペースごとに区切って配列に格納するサンプルマクロ
以下のようなマクロで、アクティブセルに入力されている文字列を、スペースごとに配列変数に格納することができます。
Dim arr As Variant
arr = Split(ActiveCell.Value)
Stop
End Sub上記のマクロを実行すると、Stop文の箇所でステップ実行モードになります。
ステップ実行中にメニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示すれば、配列変数・arrに、スペースごとに、アクティブセルの値がスペースごとに格納されているのを確認できるでしょう。
スペースごとに配列変数に格納しているのは
arr = Split(ActiveCell.Value)
の部分です。
Split関数は、何らかの区切り文字を含む文字列から、1次元配列を作成して返す関数です。
第1引数に元の文字列、第2引数に区切り文字を指定しますが、第2引数を省略した場合、半角スペースを区切り文字と見なします。
第2引数を省略せずに、
arr = Split(ActiveCell.Value, " ")
としても同じ結果が得られます。
全角スペースごとに区切って配列に格納するサンプルマクロ
全角スペースごとに区切って配列変数に格納するのなら、以下のようなマクロです。
Dim arr As Variant
arr = Split(ActiveCell.Value, " ")
Stop
End SubSplit関数の第2引数に全角スペースを指定すれば、
arr = Split(ActiveCell.Value, " ")
全角スペースごとに、文字列が配列に格納されます。
スペースごとに区切って配列に格納するサンプルマクロ
半角か全角かいずれかのスペースごとに区切って配列変数に格納するのなら、以下のようなマクロでしょうか。
Dim arr As Variant
Dim tmp As String
tmp = ActiveCell.Value
tmp = Replace(tmp, " ", " ")
arr = Split(tmp)
Stop
End SubReplace関数を使って、
tmp = ActiveCell.Value
tmp = Replace(tmp, " ", " ")
元データの全角スペースを、半角スペースに置換しておいてから、
Split関数です。
arr = Split(tmp)
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Excel VBAでスペースごとに配列変数に格納する-Split関数