セルのデータを固定長形式で複数のセルに分割する(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 |
実行結果
関連記事
-
-
VBA の演算子(比較演算子)
比較演算子 比較演算子による演算の結果は「真」の場合は「True」、「偽」の場合 …
-
-
文字列:指定した文字の文字コードを取得する(Asc 関数)
Asc 関数 【書式】 result = Asc ( string ) 引数・戻 …
-
-
指定した数値に対応する選択肢の値・数式を返す(Choose 関数)
Choose 関数 の使い方 Choose 関数は、指定されたインデックス値(1 …
-
-
日付時刻:日付から曜日を取得( Weekday 関数、WeekdayName 関数 )
Weekday 関数(日付から曜日を表す数値を返す)の使い方 【書式】 week …
-
-
ショートカットメニュー(CommandBar オブジェクト)
ショートカットメニュー(コンテキストメニュー) 右クリックで表示されるメニューの …
-
-
式を評価し、結果(真・偽)に応じた式・値を返す(IIf 関数)
IIf 関数 の使い方 IIf(アイイフ)関数は、式を評価してその結果(真・偽) …
-
-
文字列:文字列の一部を別の文字列で置換(Replace 関数)
Replace 関数の使い方 【書式】 result = Replace ( s …
-
-
文字列:文字列を検索してその最初の文字位置を返す(InStr 関数,InStrB 関数)
InStr 関数・InStrB 関数の使い方 【書式】 result = { I …
-
-
文字列:アルファベットを小文字または大文字に変換(LCase 関数,UCase 関数)
LCase 関数・UCase 関数 の使い方 【書式】 <アルファベットの大文字 …
-
-
日付時刻:時・分・秒を取得(Hour、Minute、Second 関数)
日付時刻から時・分・秒を取得する関数 【書式】 time_hour = Hour …

