The routine begins by being passed two strings, one being the category of map, and the second being the shape name used to hold a GoogleStaticMapAPI map.
Public Sub GetMap(strCategory As String, strShapeName As String)
I'm attempting to error trap the instance where a request was made for a map, but the shape (container) that will be the location of the map does not exist (user deleted, anomaly, etc.) and then create one prior to requesting the map. How do I test for the existence of a shape (and re-work the provided code) with the name passed at routine onset?
I continue to receive an error that the object doesn't exist. Exactly. I know it doesn't exist because I deleted for testing. Must I really cycle through all shapes in the worksheet via For Each Next construct as has been suggested elsewhere on the net?
Direction appreciated.
wsMaps.Activate
If Not wsMaps.Shapes(strShapeName) Is Nothing Then ' shape object exists; request map
Call GoogleStaticMap(wsMaps.Shapes(strShapeName), strGoogle)
Else ' shape does not exist, create new shape, name it, then request map
With wsLists
Set rngSource = .Range("DV2:DV14")
Set rngFound = rngSource.Find(strShapeName)
strName = CStr(rngFound)
strLoc = rngFound.Offset(0, 1)
End With
' Set/create a msoShapeRectangle shape object with name and
' location from strings above
With wsMaps
.Activate
Set oShape = wsMaps.Shapes.AddShape(msoShapeRectangle, Range(strLoc).Left, _
Range(strLoc).Top, lngWidth, lngHeight)
oShape.Name = strName
oShape.Select
With Selection.ShapeRange ' Line = White; Solid Fill = White
With .Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorBackground1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
End With
With .Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorBackground1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
End With
End With
End If
Bookmarks