データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
>メソッドをサポートしていません」”438”
Shapeは線とかそういうものも含まれます。
ですからテキストボックス以外のShapeがあれば引っかかってきてしまう訳です。
線には文字列は入れられませんから、TextFrameなんてプロパティは存在しないって怒られるわけです。
まあ、いくつか手段はあるのですが、要するに、Shapeの中からテキストボックスのみを抜き出して処理すれば良いわけです。
Sub ddd()
Dim wShape As Shape
For Each wShape In Worksheets("sheet1").Shapes
If wShape.Type = msoTextBox Then
MsgBox wShape.Name
MsgBox wShape.TextFrame.Characters.Text
MsgBox wShape.TopLeftCell.Address
End If
Next
End Sub
このコードをシート名だけ変更して問題のシートで走らせてみてください。
名前⇒これは処理には不要なはずです。
テキスト⇒これが眼目
TopLeftCell⇒多分テキストを格納することにしたいセルのアドレスです。
ただし、テキストボックスと考えられているものに、四角なんかがまぎれているとこれだけではダメなので、また別の手を考える必要がでてきます。