Interesting way to handle it. The solution I applied to my situation was different than the one I came up with for Aaron, and much simpler. My objects are all linked to cells, and are positioned directly on those cells, so all I need to do is loop through them and reposition to the cell location. This didn't work for Aaron because his objects weren't linked to cells. Here's the code:
Dim obj As Object
    ActiveSheet.UnProtect
    For Each obj In ActiveSheet.OLEObjects
        With obj
            If Left(.Name, 5) = "Combo" Then
                .Height = 15.75
                If .LinkedCell = "#REF" Or .LinkedCell = "" Then
                    MsgBox .Name & " Linkcell = " & .LinkedCell
                Else
                    .Top = Range(.LinkedCell).Top
                End If
            End If
        End With
    Next
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True