Just noticed that you wanted annotations:
Sub Test()
Dim r As Long, str As String, rpt As Long, s As Variant
r = ActiveCell.Row ' assign "r" to be the active row
str = Cells(r, 1) ' '"str" becomes the value in column A (column One) of the active row
rpt = Cells(r, 2) ' '"rpt" becomes the value in column B (column Two) of the active row
' inserts ("rpt" less one) rows under the active row ("r")
' So: (active row + 1) to (active row + (rpt - 1))
' This means that the count of active row and the newly inserted rows will be equal to "rpt" rows
Rows(r + 1 & ":" & r + (rpt - 1)).Insert
With Application ' saves me typing Application over and over, anything that starts with "." now refers to Application
' creates an array with "rpt" amount of rows, the sequence starts at 1 and the step to the sequence is 0, therefore we get an array with "rpt" amount of 1's
s = .Sequence(rpt, , 1, 0)
' resizes the range: column one active row to be "rpt" amount of rows starting at the active row
' the .Rept part repeats the "str" once for every time there is a one in the sequence of 1's we created in the array "s"
' so the resized range now = the array of "str" we created
Cells(r, 1).Resize(rpt) = .Rept(str, s)
' resizes the range: column two active row to be "rpt" amount of rows starting at the active row
' as "s" is now just an array of 1's with a count of "rpt" we can just make the resized range = "s"
Cells(r, 2).Resize(rpt) = s
End With
End Sub