セルの文字列を分解し複数のセルに分ける|TextToColumns|Excel VBA

TextToColumnsとは、文字列を指定した区切り文字か固定長で分解することができるメソッドです。ここではセルの文字列をスペースと「-」で分解するサンプルを掲載します。



Homeに戻る > Excel 文字列関数のTipsへ

構文 : オブジェクト.TextToColumns ( Destination, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers )

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です。
スペースで区切られている名前を姓と名に分解するVBA

・Destinationで出力先をC3セルに指定しています。
・DataTypeで区切り文字を指定しています。
・Spaceで区切り文字をスペースに指定しています。

Sub MyTextToColumns()
    Range("B3:B10").TextToColumns Destination:=Range("C3"), _
    DataType:=xlDelimited, Space:=True
End Sub

実行結果のシートです。
名前を姓と名に分解することができました。
名前を姓と名に分解することができた

TextToColumnsを使い、ハイフンの区切り文字で分解する

ハイフンで区切られている型番が入力されているシートです。
ハイフンで区切られている型番が入力されているシート

ハイフンで区切られている型番を複数セルに分解するVBAです。
ハイフンで区切られている型番を複数セルに分解する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

実行結果のシートです。
文字列中のハイフンで分解されています。
文字列中のハイフンで分解できた



Homeに戻る > Excel 文字列関数のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved