複数の図形内の文字列を検索する方法
やりたい事
同じワークシート内に複数の図形がある場合にすべての図形の文字列を取り出す方法を解説します。
取り出した後にfindやInstrを使用して検索することが可能です。
今回の例では4つのそれぞれ図形のなかに動物の名前が入力してあるので、それをA1~A4に出力します。
サンプルコード
Sub searchShapesText() Dim searchText As String Dim shapeText As String Dim i As Long Dim workShape As Shape ActiveSheet.Shapes.AddShape(msoShapeRectangle, Range("B2").Left, Range("B2").Top, 100, 100).Name = "いるか" ActiveSheet.Shapes.AddShape(msoShapeRectangle, Range("D2").Left, Range("D2").Top, 100, 100).Name = "うさぎ" ActiveSheet.Shapes.AddShape(msoShapeRectangle, Range("B10").Left, Range("B10").Top, 100, 100).Name = "ぺんぎん" ActiveSheet.Shapes.AddShape(msoShapeRectangle, Range("D10").Left, Range("D10").Top, 100, 100).Name = "シャチ" ActiveSheet.Shapes("いるか").TextFrame.Characters.text = "いるか" ActiveSheet.Shapes("うさぎ").TextFrame.Characters.text = "うさぎ" ActiveSheet.Shapes("ぺんぎん").TextFrame.Characters.text = "ぺんぎん" ActiveSheet.Shapes("シャチ").TextFrame.Characters.text = "シャチ" i = 1 For Each workShape In ActiveSheet.Shapes Cells(i, 1) = workShape.TextFrame.Characters.text i = i + 1 Next End Sub
コメント