I threw this together from some stuff that i already have written. it may need some tweeking. 
Code:
Sub your_BLK_name()
Dim gpCode(1) As Integer
Dim dataValue(1) As Variant
Dim SS_your_BLK_name As AcadSelectionSet
Dim i As Integer
Set SS_your_BLK_name = ThisDrawing.SelectionSets.Add("SS_your_BLK_name")
gpCode(0) = 0: dataValue(0) = "INSERT"
gpCode(1) = 2: dataValue(1) = "name of old block"
SS_your_BLK_name.Select acSelectionSetAll, , , gpCode, dataValue
Dim BScale(2) As Double
Dim BCoord() As Long
Dim Cur_Blk as AcadBlockReference
For i = 0 To SS_your_BLK_name.Count - 1
Set Cur_Blk = SS_your_BLK_name.Item(i)
If Cur_Blk.Name = "name of old block" Then
BScale(0) = Cur_Blk.XScaleFactor
BScale(1) = Cur_Blk.YScaleFactor
BScale(2) = Cur_Blk.ZScaleFactor
BCoord() = Cur_Blk.InsertionPoint
End If
Next i
If SS_your_BLK_name.Count > 0 Then SS_your_BLK_name.Erase
Dim BlockObj As AcadBlockReference
Set BlockObj = ThisDrawing.ModelSpace.InsertBlock(BCoord, "new block name", BScale(0), BScale(1), BScale(2), 0)
End Sub
Bookmarks