ShapeのVBAの中での取り扱い
ShapeのVBAの中での取り扱いに関して、サジェスチョン願います。
Shapeに文字が書き込まれていない段階で、選択して文字を読み込み判定しようとするとエラーとなります。
下記のVBAでは、5番目のShapeが該当します。
このエラーを防ぐためには、On Error Resume Nextが有効ですが、他の方法を探しています。例えば、charactor=trueみたいなもの。
-----
Sub Shapeの調査()
Dim nametemp(10) As String
Dim temp As Integer
Dim i As Integer
Dim aaa As Variant
'On Error Resume Next
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 50, 50, 50).Select
ActiveSheet.Shapes.AddShape(msoShapeOval, 100, 100, 50, 50).Select
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 150, 150, 50, 50).Select
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 200, 200, 50, 50).Select
ActiveSheet.Shapes.AddShape(msoShapeOval, 250, 250, 50, 50).Select
temp = ActiveSheet.Shapes.Count
For i = 1 To temp
ActiveSheet.Shapes(i).Select
nametemp(i) = ActiveSheet.Shapes(i).Name
Next
For i = 1 To temp / 2 + 1 '4つのshapeに対し、文字を書き込もうとする
ActiveSheet.Shapes(nametemp(i)).Select
Selection.Characters.Text = ""
Next
For i = 1 To temp / 2 '3つに対して、文字を書き込む
ActiveSheet.Shapes(nametemp(i)).Select
Selection.Characters.Text = "zzzzz"
Next
For i = 1 To temp
ActiveSheet.Shapes(nametemp(i)).Select
aaa = Selection.Characters.Text '<--5番目のShapeに対し
If aaa = "zzzzz" Then MsgBox (aaa)'<--errorとなる。
Next
End Sub
お礼
どうもありがとうございました。