1つのセルの文字列をスペースごとにセルを分けるには

以下のようにA列のセルの中にスペース区切りの文字列が設定されているとして、それをB列以降にスペース区切りで分けたい場合があります。

.

これ自体はわざわざVBAでやらなくても置換機能があるテキストエディタがあれば以下の手順で簡単にできます。

  1. テキストエディタにA列の内容を貼り付ける。
  2. テキストエディタでスペースをタブ文字に置換する。(正規表現で言えば、( | )を\tへの置換)
  3. 置換後の内容をExcelシートに貼り付ける。

ただ、どうしてもVBAでやる必要がある場合もあります。

そのような場合の対応方法を紹介します。


処理手順の概要

VBAで行う場合には主に3つの手順になります。

  1. 行数分ループする。
  2. Split関数でスペース文字区切りの内容を配列化する。
  3. 配列をループして列をずらしながらセルに貼り付ける。

考え方はそんなに難しくありませんが、コードの書き方が分からないというのでハマるかもしれません。


コード

上の処理手順の概要をそのままコードにしてみました。

A列を上から順にループし、半角スペースをSplit関数で分割して、その分割された内容を隣の列に貼り付けていくコードです。

Offsetプロパティの使い方が慣れてないと分かりにくいかもしれませんが、アクティブセルから見て、行と列が指定数だけ離れている箇所を指します。

実行すると上の例のようにB列以降に半角スペースで分割した内容が貼り付けられます。