Assuming a1;a2;a3 is in cell A1 , try this small macro to place the results in column B :
Sub ReArrange()
Dim N As Long, i As Long, BigString As String
N = Cells(Rows.Count, 1).End(xlUp).Row
BigString = Range("A1").Value
For i = 2 To N
BigString = BigString & ";" & Cells(i, 1).Value
Next i
i = 1
ary = Split(BigString, ";")
For Each a In ary
Cells(i, 2).Value = a
i = i + 1
Next a
End Sub
EDIT#1:
based on your need for the extra column, this macro asks for the initial value and places the results in columns A and B :
Sub ReArrangeII()
Dim N As Long, i As Long, BigString As String
Dim M As Long, j As Long
N = Cells(Rows.Count, 1).End(xlUp).Row
M = Application.InputBox(Prompt:="enter initial value", Type:=1)
j = 1
For i = 1 To N
BigString = Cells(i, 1).Value
ary = Split(BigString, ";")
u = UBound(ary) + 1
For Each a In ary
Cells(j, 2).Value = M
Cells(j, 3).Value = a
j = j + 1
Next a
M = M + 1
Next i
End Sub