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

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




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

構文 : オブジェクト.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です。
スペースで区切られている名前を姓と名に分解する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