関数・メソッド

セル内の区切られたデータを複数の列に分割する【TextToColumnsメソッド】【ExcelVBA】

TextToColumnsメソッド

ひとつのセルに入力されているカンマやスペースで区切られたデータを、複数列に分割する機能です。
氏名をスペースで区切ることはよくありますが、その姓と名を別々のセルに分けたいようなときなどに使います。

構文
Object.TextToColumns ( Destination, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers )

ObjectRange オブジェクトを表す変数です。
Destination分割したデータの表示先を指定します。
DataType複数の列に区切るデータの形式を、XlTextParsingType の定数で指定します。
・ xlDelimited は区切り文字によってデータを分割します。
・ xlFixedWidth は固定した長さでデータを分割します。
TextQualifier文字列の引用符に(“)or(‘)を使用するか、または引用符を使用しないかどうかをXlTextQualifier(下記)の定数で指定します。
ConsecutiveDelimiterTrue を指定すると、連続する区切り記号を1つの区切りと見なします。既定値は False。
Tab区切り文字がタブ文字の場合Tureを指定します。 既定値は False。
Semicolon区切り文字がセミコロン (;) の場合Tureを指定します。 既定値は False。
Comma区切り文字がコンマ (,) ですの場合Tureを指定します。 既定値は False。
Space区切り文字がスペースですの場合Tureを指定します。 既定値は False。
Other区切り文字がタブ、セミコロン、コンマ、スペース以外の文字の場合、Tureを指定します。 既定値は False。
OtherCharOther が True の場合は必須です。Other が True の場合の区切り文字を指定します。
Fieldinfo区切り後の列のデータ形式に関する情報を持つ配列を指定します。
XlTextQualifier説明
xlTextQualifierDoubleQuote1ダブルクォーテーション (“)
xlTextQualifierSingleQuote2シングルクォーテーション(‘)
xlTextQualifierNone-4142引用符なし

 

Fieldinfo

引数 Fieldinfo は Array を使い、何文字目で分割するかを指定できます。

Array(何文字目,文字列形式)

※文字列形式については以下を参照してください

xlGeneralFormat1一般形式
xlTextFormat2テキスト形式
xlMDYFormat3MDY (月日年)日付形式
xlDMYFormat4DMY 日付形式
xlYMDFormat5YMD 日付形式
xlMYDFormat6MYD 日付形式
xlDYMFormat7DYM 日付形式
xlYDMFormat8YDM 日付形式
xlSkipColumn9列の解析なし
xlEMDFormat10EMD日付形式

 

ユーザー設定リストを追加し、削除するサンプルコード

Public Sub Sample()
 
  '■A1セルに入力されているデータを分割する
  '表示先はB1セル
  '区切り文字はスペース
  Range("A1") = "姓 名"   'A1セルに入力(名前)
  Range("A1").TextToColumns Destination:=Range("B1"), _
                            DataType:=xlDelimited, _
                            Space:=True
                            
  '■文字数を指定して分割する場合
  Range("A2") = 1638001     'A2セルに入力(郵便番号)
  Range("A2").TextToColumns Destination:=Range("B2"), _
                            DataType:=xlFixedWidth, _
                            FieldInfo:=Array(Array(0, 1), Array(3, 1))

End Sub

 

コメント

タイトルとURLをコピーしました