セルのデータを固定長形式で複数のセルに分割する(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 |
実行結果
関連記事
-
日付時刻:日付から曜日を取得( Weekday 関数、WeekdayName 関数 )
Weekday 関数(日付から曜日を表す数値を返す)の使い方 【書式】 week …
-
指定した値を8進数で表記した文字列に変換する(Oct 関数)
Oct 関数 の使い方 【書式】 result = Oct ( expressi …
-
色の設定(ThemeColor プロパティ・TintAndShade プロパティ)
ThemeColor プロパティ・TintAndShade プロパティ テーマカ …
-
ある数値が、複数の範囲のどの範囲に含まれるかを示す文字列を返す(Partition 関数)
Partition 関数 の使い方 Partition 関数は、ある数値が、区切 …
-
フォントサイズ(Size プロパティ・StandardFontSize プロパティ)
フォントサイズを取得・設定する(Size プロパティ) Size プロパティは、 …
-
日付時刻:経過時間を取得( Timer 関数 )
Timer 関数の使い方 【書式】 result = Timer () 【戻り値 …
-
RGB 値一覧表(XlRgbColor 列挙型)
RGB 値(XlRgbColor 列挙型)一覧表 RGB 関数を使用して、出力さ …
-
変数のデータ型・宣言(Dim ステートメント)
変数の宣言 一般的な方法 【書式】 Dim varname [ As type, …
-
Join 関数(配列の要素を結合)
Join 関数 1次元配列の各要素を指定した区切り文字で連結します。 【書式】 …
-
Option Compare ステートメント
Option Compare ステートメントの使い方 【書式】 Option C …