セルのデータを固定長形式で複数のセルに分割する(TextToColumns メソッド・Parse メソッド)
固定長形式でセルを分割
TextToColumns メソッドや Parse メソッドを使用するとセル内のデータを固定長形式で複数のセルに分割することができます。
→「区切り文字」で分割する場合についての詳細は セルのデータを区切り文字で複数のセルに分割する(TextToColumns メソッド) を参照してください。
TextToColumns メソッド
object.TextToColumns ( Destination, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- Destination ・・・ 結果の出力先(Range オブジェクト)を指定。省略すると元データが入力されているセルが起点となります。
- DataType ・・・ 複数セルに分割する形式を XlTextParsingType 列挙の定数(値)で指定します。
定数 値 内容 xlDelimited 1 区切り文字(既定値) xlFixedWidth 2 固定幅 - TextQualifier ・・・ 文字列に使用する引用符を XlTextQualifier 列挙の定数(値)で指定します。
定数 値 内容 xlTextQualifierDoubleQuote 1 二重引用符(既定値) xlTextQualifierSingleQuote 2 一重引用符 xlTextQualifierNone -4142 引用符なし - ConsecutiveDelimiter ・・・ True を指定すると、連続した区切り文字を 1 つの区切り文字として認識します。既定値は False。
- Tab ・・・ True を指定すると、引数 DataType は xlDelimited で区切り文字がタブ文字です。既定値は False。
- Semicolon ・・・ True を指定すると、引数 DataType は
xlDelimited で区切り文字がセミコロン(;)です。既定値は False。 - Comma ・・・ True を指定すると、引数 DataType は xlDelimited で区切り文字がコンマ(,)です。既定値は False。
- Space ・・・ True を指定すると、引数 DataType は xlDelimited で区切り文字がスペースです。既定値は False 。
- Other ・・・ True を指定すると、引数 DataType は xlDelimited で区切り文字が引数 OtherChar で指定した文字です。既定値は False。
- OtherChar ・・・ 引数 Other が True の場合の区切り文字を指定します。複数の文字を指定したときは、先頭の文字だけが区切り文字として使われ、残りの文字は無視されます。
- FieldInfo ・・・ 区切り後の列のデータ形式に関する情報を持つ配列を指定します。
- DecimalSeparator ・・・ Excel で数値を認識する場合に使う小数点の記号です。既定はシステム設定です。
- ThousandsSeparator ・・・ Excel で数値を認識する場合に使う桁区切り記号です。既定はシステム設定です。
- TrailingMinusNumbers ・・・ 負記号で始まる数値です。
引数 FieldInfo について
分割後の列に対しての表示形式を指定します。引数 DataType の値が xlFixedWidth の場合(データが固定長形式で区切られている場合)の FieldInfo には、Array ( 開始位置, 表示形式 ) のように指定します。「開始位置」は、元のセルにある文字列の位置をバイト数で指定します。「表示形式」は、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 日付形式 |
Parse メソッド
object.Parse [ ( ParseLine, Destination ) ]
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- ParseLine ・・・ データの区切り位置を文字列で指定します。x で1文字を表し、[ と ] で囲まれた部分が1つのセルに入力されます。[ と ] で囲まれていない部分についてはセルに入力されません。
- Destination ・・・ 結果の出力先(Range オブジェクト)を指定。省略すると元データが入力されているセルが起点となります。
TextToColumns メソッド 使用例
サンプルVBAソース
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Sub Sample_TextToColumns2() Dim Rng As Range Dim myRng As Range Set myRng = Worksheets("Sheet2").Range("A1").CurrentRegion 'セルを固定長形式で分割 myRng.TextToColumns _ Destination:=Range("E1"), _ DataType:=xlFixedWidth, _ fieldinfo:=Array( _ Array(0, xlSkipColumn), _ Array(3, xlTextFormat), _ Array(5, xlSkipColumn), _ Array(6, xlGeneralFormat), _ Array(10, xlSkipColumn), _ Array(11, xlGeneralFormat)) '※警告マークを無視 For Each Rng In ActiveSheet.UsedRange Rng.Errors(xlNumberAsText).Ignore = True Next End Sub |
実行結果
Parse メソッド 使用例
サンプルVBAソース
|
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub Sample_Parse() Dim myRng As Range Set myRng = Worksheets("Sheet3").Range("A1").CurrentRegion myRng.Parse _ "x[xxx]x[xxxx]", _ Range("E1") End Sub |
実行結果
関連記事
-
-
色の設定(ColorIndex プロパティ・Colors プロパティ)
ColorIndex プロパティ ColorIndex プロパティは、指定したオ …
-
-
変数のデータ型・宣言(Dim ステートメント)
変数の宣言 一般的な方法 【書式】 Dim varname [ As type, …
-
-
日付時刻:日付時刻から情報取得( DatePart 関数 )
DatePart 関数(日付・時刻の値から情報を取得) 【書式】 result …
-
-
カレントフォルダの取得・設定(DefaultFilePath プロパティ)
DefaultFilePath プロパティ カレントフォルダとは、ブックを開いた …
-
-
VBA で正規表現を使う(RegExp オブジェクト)
RegExp オブジェクト VBA で正規表現を使うには、VBScript のR …
-
-
指定した値を8進数で表記した文字列に変換する(Oct 関数)
Oct 関数 の使い方 【書式】 result = Oct ( expressi …
-
-
文字列:文字列を検索してその最初の文字位置を返す(InStr 関数,InStrB 関数)
InStr 関数・InStrB 関数の使い方 【書式】 result = { I …
-
-
データ型変換関数
データ型変換関数の使い方 【書式】 function ( expression …
-
-
エラー(CVErr 関数・IsError 関数・Error 関数)
CVErr 関数(エラー番号をエラー値に変換する)の使い方 【書式】 retur …
-
-
変数が日付型かどうかをチェックする( IsDate 関数 )
IsDate 関数の使い方 【書式】 result = IsDate( expr …

