For i = 5 To intRow
  Range("C" & i).Select
  If Len(Range("C" & i)) > 6 And Len(Range("C" & i)) < 10 Then N=N+1
    ' i=5の時は、C5の文字数を数えて 6 より大きくて、かつ 10 より小さい時 N は N+1 になる。
    ' これは変更を要する行が、何ヶ所あるのかを数えている。
    ' A1-15.16 のように二つの品番が一つに書かれているので、書き直すには2行になるので、1行
    ' を追加することになる。N は追加の行数を示している。
    ' これは For i=5 To intRow + N の様に、intRowの値よりも行数が増えているから、その増加
    ' した行数が N 値である。

Next

For i=5 To intRow+N             ' intRow+増加する行数を見込んでいる。
  Range("C" & i).Select
  If Mid(Range("C" & i), 3, 1) = "−" And Mid(Range("C" & i), 6, 1)="." Then
    ' i=5 の場合は、C5の文字列の3文字目が "−" で、C5の文字列の6文字目が "." なら

   intLen=Len(Range("C" & i))       ' C5の文字数を数えて intLen に代入する。
   If intLen=8 Then             ' C5の文字数が8なら
    intBun=2               ' 数量を2分割する。
    strHin=Left(Range("C" & i), 2)      ' C5の左から2文字目を strHin に代入する。
    strHin2=Mid(Range("C" & i), 4 , 2)    ' C5の4文字目から2文字を strHin2 に代入する。
    strHin3=Mid(Range("C" & i), 7 , 2)    ' C5の7文字目から2文字を strHin3 に代入する。
    strSeib=Range("B" & i)         ' B5を strSeib に代入する。
    intSu= Range("G" & i)           ' G5を intSu に代入する。
    intSu2=intSu / intBun         ' intSu ÷ intBun を intSu2に代入する。
    strTex1= Range("E" & i)        ' E5 を strTex1 に代入する。
    strTex2=Range("F" & i)         ' F5 をstrTex2 に代入する。

    Range("D" & i).Value=strHin2     ' D5に strHin2 を代入する。

    Range("B" & i+1 & "G" & i+1).Select   ' B6:G6を選択する。

    Selection.EntireRow.Insert. CopyOrigin:=xlFormatFromLeftOrAbove
                         ' 選択範囲に行を挿入する。
    Range("B" & i + 1).Value = strSeib    ' B6に strSeib を記入する。
    Range("C" & i + 1).Value = strHin   ' C6に strHin を記入する。
    Range("D" & i + 1).Value = strHin3
    Range("E" & i + 1).Value = strTex1
    Range("F" & i + 1).Value = strTex2
    Range("G" & i + 1).Value = intSu2

    Range("C" & i ).Value = strHin     ' C5に戻って品番1を記入する。
    Range("G" & i ).Value = strSu2      ' G5に戻って数量を記入する。

    Range("C" & i).Select
   End If
  End If
Next

End Sub
このプログラムを改造すれば、A10−11.12やA1−12.13.14のような三つの品番にも対応できる。
この図の様に、間違いの C列を、C列とD列に分割している。
又、新規の行を挿入して2行に記入し、G列の数量も2分割して記入している。

● データベースの行をすべてチェックして、問題のある行を修正するのが下記のプログラムである。
C5とC7に本来の入力書式ではない入力がされて、データベースに保存された。
何ヶ所に問題があるか分からないので、データを使用して集計などを行う場合に都合が悪い。
●データベース内の、品番入力が間違っているものを自動で変換して修正する。
 
基本的なマクロの習得
データベースの入力間違いを自動修正


実際に使っているシステムの内容で解説
  EXCEL VBA 講座