おつかれさまです。

EXCEL超初心者マクロ(8)- 分割(Split)-

今回は分割の説明とサンプルを紹介いたします。
電話番号を分割したいときってありますよね。

splitを使うと簡単に分割できます
ただ、電話番号のように、同じ場所にハイフンが入ってるデータは簡単ですが、数が違う場合は少し工夫が必要です。

Sample_10V1.xlsm

1.電話番号分割
※出力先を文字列にしておきましょう。マクロでやってもいいですね。

2.最終の文字 & 分割

A>B>C>D>E>F>G
A>B>C>D>E>F
A>B>C>D>E
A>B>C>D
A>B>C
A>B
A

1.電話番号分割

Dim set_data01 As Object
Dim VWORK01 As Variant

Set set_data01 = Worksheets("INPUT1").Range("A2") '### 最初の行

Do Until set_data01.Offset(0, 0).Value = ""

   VWORK01 = Split(set_data01.Offset(0, 0).Value, "-") 'TEL
   set_data01.Offset(0, 1).Value = VWORK01(0)
   set_data01.Offset(0, 2).Value = VWORK01(1)
   set_data01.Offset(0, 3).Value = VWORK01(2)
   
   Set set_data01 = set_data01.Offset(1, 0)   '### 次の行
Loop

Sheets("INPUT1").Select
MsgBox (" 処理END ")

2.最終の文字

Dim set_data01 As Object
Dim VWORK01 As Variant
Dim MAX_INSTR As Long
Dim CNT01 As Long
Dim CNT02 As Long
Dim CNT03 As Long

Set set_data01 = Worksheets("INPUT2").Range("A2") '### 最初の行

Do Until set_data01.Offset(0, 0).Value = ""

   VWORK01 = Split(set_data01.Offset(0, 0).Value, ">") '### 分割
   CNT01 = UBound(VWORK01) '### 分割数
   CNT03 = 1
   For CNT02 = 0 To CNT01 '### CNT02を0から分割数まで回します。
       set_data01.Offset(0, 1).Value = VWORK01(CNT02) '### 同じところに入れ続ける
       set_data01.Offset(0, CNT03 + 2).Value = VWORK01(CNT02) '### 1個づつ右にずらす
       CNT03 = CNT03 + 1
   Next CNT02
  
   Set set_data01 = set_data01.Offset(1, 0)   '### 次の行
   
Loop

Sheets("INPUT2").Select
MsgBox (" 処理END ")

がんばりましょう。