いつもお世話になっております。
(図がなくて説明が悪かったと思いますので、訂正しました。)
Word2007を使用しています。
[挿入]⇒[図形]から「テキストボックス」を入力できると思います。
その中に、[開発]⇒[コントロール]などから
InlineShapeを配置できると思います。
そこで質問なのですが、
テキストボックス内のInlineShapeの情報を取得するには
どのようにしたら良いでしょうか?
Shapeの情報であれば以下のように取得できると思います。
Dim shape As Word.shape
For Each shape In ActiveDocument.Shapes
'必要に応じてプロパティの値を変えます。
MsgBox (shape.Width)
Next
同じようにInlineShapeの情報であれば、
以下のように取得できると思います。
Dim ishape As Word.InlineShape
For Each ishape In ActiveDocument.InlineShapes
'必要に応じてプロパティの値を変えます。
MsgBox (shape.Width)
Next
ここまでは分かったのですが、
Shape内に配置されているInlineShapeの情報を取得する方法が
どうしても分かりませんでした。
もしご存知でしたら、教えて頂けませんか?
ぜひよろしくお願い致します。
※図を付けます。
図に載せたコマンドボタンの情報を取得したいと思っております。
よろしくお願い致します。
下記のようなことでどうでしょうか。
Dim ishp As Word.InlineShape
ActiveDocument.Shapes("Text Box 1").Select
For Each ishp In Selection.Range.InlineShapes
MsgBox (ishp.Width)
Next
ありがとうございました。
(補足にお礼を書いてすいません。)
全部選んでいけば、取得できそうですね。
xls88様はこれを言いたかったのでしょうか。
(下にプログラムを載せます。)
とても参考になりました。
あとは、始めに選んでいた場所を選びなおせれば、
解決できそうです。
この方法が簡単には分かっていませんが。。。
また質問させて頂くかもしれませんが、
そのときには、ぜひよろしくお願い致します。
Sub main()
Dim shape As Word.shape
Dim ishp As Word.InlineShape
For Each sh In ActiveDocument.Shapes
sh.Select
For Each ishp In Selection.Range.InlineShapes
MsgBox (ishp.Width)
Next
Next
End Sub
お礼
ありがとうございます。 ただ選択はせずに取得したいのです。 選択さえすれば取得できるというは私も分かったのですが、 選択しないとなると、なかなか難しそうでした。 ご回答ありがとうございました。
補足
ありがとうございました。 (補足にお礼を書いてすいません。) 全部選んでいけば、取得できそうですね。 xls88様はこれを言いたかったのでしょうか。 (下にプログラムを載せます。) とても参考になりました。 あとは、始めに選んでいた場所を選びなおせれば、 解決できそうです。 この方法が簡単には分かっていませんが。。。 また質問させて頂くかもしれませんが、 そのときには、ぜひよろしくお願い致します。 Sub main() Dim shape As Word.shape Dim ishp As Word.InlineShape For Each sh In ActiveDocument.Shapes sh.Select For Each ishp In Selection.Range.InlineShapes MsgBox (ishp.Width) Next Next End Sub