oShapes = oSheet.Shapes
oShape = oShapes.AddShape(Type:=MsoAutoShapeType.msoShapeRectangle, _
Left:=oRange.Left, Top:=oRange.Top, Width:=oRange.Width, Height:=oRange.Height)
↓
System.Runtime.InteropServices.COMException (0x800A03EC): Range クラスの Left プロパティを設定できません。
Dim nRangeLeft As Single = oRange.Left
Dim nRangeTop As Single = oRange.Top
Dim nRangeWidth As Single = oRange.Width
Dim nRangeHeight As Single = oRange.Height
oShapes = oSheet.Shapes
oShape = oShapes.AddShape(Type:=MsoAutoShapeType.msoShapeRectangle, _
Left:=nRangeLeft, Top:=nRangeTop, Width:=nRangeWidth, Height:=nRangeHeight)
↓
エラー出ないなにがまずいんだ。一旦Singleに入れてやらねばならんのか?