構文 : オブジェクト.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
実行結果のシートです。
文字列中のハイフンで分解されています。