VBA:「シェイプの存在確認」
シェイプに何かする前。
つまり、シェイプを指定する場合には当然、
シェイプが存在している必要があるわけで
それを関数にするとなると色んなやり方がうまれます。
都度書くのが面倒なので、以下に残します。
' 指定したシェイプが存在すればTrueを返します。
' ただしこれは全検索タイプなので遅い
Public Function srchShape(srchName As String) As BooleanDim objShp As Shape
For Each objShp In ActiveSheet.Shapes
If StrComp(objShp.Name, srchName) = 0 Then
srchShape = True
Exit For
End If
NextEnd Function
個人的には、こういう処理の仕方は嫌いなのですが、
速度のためには仕方ないってことで、速くしたいときはこっち。
' 指定したシェイプが存在すればTrueを返します。
' エラーで回避するのは好きじゃないが・・。
Public Function srchShape2(strSrchName As String) As BooleanDim objShp As Shape
On Error GoTo NO_OBJECT
If IsObject(ActiveSheet.Shapes(strSrchName)) Then
srchShape2 = True
End If
Exit Function
NO_OBJECT:
srchShape2 = False
Err.Clear
End Function
実は、どちらの処理も好きじゃありませんが、
今急いでるんでこれで。