構文 : オブジェクト.TextToColumns ( Destination, DataType, TextQualifier, ConsecutiveDelimiter,
Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, DecimalSeparator,
ThousandsSeparator, TrailingMinusNumbers )
- Destination:(省略可)結果を入力するセルを指定。複数セルの場合は左上端のセルを指定。省略すると元データが入力されているセルが起点になります。
 - DataType:(省略可)分割するデータ形式を XlTextParsingTypeクラスの定数で指定します。 
 - TextQualifier:(省略可)文字列の引用符を XlTextQualifierクラスの定数で指定します。引用符なしにすると、「"(ダブルクォーテーション)」も「'(シングルクォーテーション)」も文字列として扱われます。
 - ConsecutiveDelimiter:(省略可)Trueを指定すると、連続した区切り文字を1文字とします。省略するとFalseになります。
 - Tab:(省略可)区切り文字がタブの場合Trueを指定します。省略するとFalseになります。
 - Semicolon:(省略可)区切り文字が「;(セミコロン)」の場合Trueを指定します。省略するとFalseになります。
 - Comma:(省略可)区切り文字が「,(カンマ)」の場合Trueを指定します。省略するとFalseになります。
 - Space:(省略可)区切り文字がスペースの場合Trueを指定します。省略するとFalseになります。
 - Other:(省略可)区切り文字がタブ・セミコロン・カンマ・スペース以外の場合Trueを指定します。省略するとFalseになります。 
 - OtherChar:(省略可)引数OtherがTrueの場合に区切り文字を指定します。
 - FieldInfo:(省略可)分割する時のデータ形式を配列で指定します。分割後のデータ形式はXlColumnDataTypeクラスの定数で指定します。
 
XlTextParsingTypeクラスの定数
 
| 定数 | 
内容 | 
| xlDelimited | 
区切り文字形式(既定値) | 
| xlFixedWidth | 
固定長形式 | 
XlTextQualifierクラスの定数
 
| 定数 | 
内容 | 
| xlTextQualifierDoubleQuote | 
「"(ダブルクォーテーション)」 | 
| xlTextQualifierSingleQuote | 
「'(シングルクォーテーション)」 | 
| xlTextQualifierNone | 
引用符なし | 
XlColumnDataTypeクラスの定数
 
| 定数 | 
値 | 
内容 | 
| xlGeneralFormat | 
1 | 
一般 | 
| xlTextFormat | 
2 | 
文字列 | 
| xlMDYFormat | 
3 | 
MDY (月日年)日付形式 | 
| xlDMYFormat | 
4 | 
DMY 日付形式 | 
| xlYMDFormat | 
5 | 
YMD 日付形式 | 
| xlMYDFormat | 
6 | 
MYD 日付形式 | 
| xlDYMFormat | 
7 | 
DYM 日付形式 | 
| xlYDMFormat | 
8 | 
YDM 日付形式 | 
| xlSkipColumn | 
9 | 
スキップ列 | 
| xlEMDFormat | 
10 | 
EMD日付形式(台湾年月日) | 
「文字列を複数に分割する|Split関数」も参照してください。
 
TextToColumnsを使い、スペースの区切り文字で分解する
スペースで区切られている名前が入力されているシートです。
スペースで区切られている名前を姓と名に分解するVBAです。
・Destinationで出力先をC3セルに指定しています。
・DataTypeで区切り文字を指定しています。
・Spaceで区切り文字をスペースに指定しています。
Sub MyTextToColumns()
    Range("B3:B10").TextToColumns Destination:=Range("C3"), _
    DataType:=xlDelimited, Space:=True
End Sub
実行結果のシートです。
名前を姓と名に分解することができました。
TextToColumnsを使い、ハイフンの区切り文字で分解する
ハイフンで区切られている型番が入力されているシートです。
ハイフンで区切られている型番を複数セルに分解するVBAです。
・Space:=Falseは省略できますが、今回のように前にSpace:=Trueで実行した場合はFalseにしないと、スペースでも分解されてしまいます。
・Otherで区切り文字がタブ・セミコロン・カンマ・スペース以外を指定しています。
・Othercharで区切り文字をハイフンに指定しています。
Sub MyTextToColumns()
    Range("B3:B8").TextToColumns Destination:=Range("C3"), _
    DataType:=xlDelimited, Space:=False, Other:=True, Otherchar:="-"
End Sub
実行結果のシートです。
文字列中のハイフンで分解されています。