
「図の挿入」を使って画像ファイルから読み込んで貼り付けた画像を、ワードマクロで選択したいと思っています。
どのようなコードを書けばいいか、教えてください。
ちなみに、以前どなたかがされた質問に対する回答(http://oshiete1.goo.ne.jp/qa2224793.html)で
ActiveDocument.Content.ShapeRange.Select
を使うという方法が提示されていましたが、「図の挿入」で読み込んだ画像ファイルには使えないようです。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
#1のご回答がありますが
私も判らずながらやってみました。
http://msdn.microsoft.com/library/ja/default.asp …
にInlineShapes の説明があります。
ーー
まずエクセルの操作で、挿入ー図ーファイルからでファイル名を指定します。
するとInlineShapes のオブジェクトになるようで、
Sub test02()
For Each ishape In ActiveDocument.InlineShapes
ishape.ConvertToShape
Next ishape
End Sub
を実行するとShape オブジェクトに変換できます。
Sub test01()
Dim pc As Object
Dim ishape As Object
MsgBox ActiveDocument.Shapes.Count
MsgBox ActiveDocument.InlineShapes.Count
For Each pc In ActiveDocument.Shapes
MsgBox pc.Name
Next
End Sub
を実行しますと
メッセージボックスで2と0がでて
Picture 6
などと表示できます。
Sub test03()
ActiveDocument.Shapes("Picture 6").Select
Selection.Delete
End Sub
で削除できました。
ーーー
InlineShapeを捉える件ですが
http://www.keep-on.com/excelyou/2001lng4/200112/ …
に書いておられますが
Indexでしか捕らえられないのかもしれません。
Sub test04()
MsgBox ActiveDocument.InlineShapes.Count
n = ActiveDocument.InlineShapes.Count
For i = 1 To n
MsgBox ActiveDocument.InlineShapes(i).Height
Next i
End Sub
私もNameでやってみましたができませんでした。
他に方法があるのかどうかわかりません。
Shapes->InlineShapeは選択したものにつき
Sub ConvertToInlineShape()
With Selection
' \\ If we selected a Shape then convert to InlineShape
If .Type = wdSelectionShape Then
.ShapeRange(1).ConvertToInlineShape
End If
End With
End Sub
というコードを見つけました。
Pictureの判別は
Sub test05()
Dim inlineShape
For Each inlineShape In ActiveDocument.InlineShapes
If inlineShape.Type = wdInlineShapePicture Then
MsgBox inlineShape.Height
End If
Next
End Sub
を見つけました。
色々と私の考えが足りなかったところまで含めての詳細なご回答、まことにありがとうございました。
私の使い方では、選択自体はIndexによる補足で十分でした。その他のサンプルも大変役立ちました。
ありがとうございました。
No.1
- 回答日時:
マクロについては勉強中なので、的確な回答はできませんが。
以前の回答にある"Shape"は浮動配置された画像などに対してのもので、
[行内]にある場合は、使用できません。
以下のマクロで、位置を固定された[行内配置 ( InlineShape )]が幾つ
あるのか、位置を固定されない[浮動配置 ( Shape )]が幾つあるのか判断
できるもので確認されてはいかが。
Sub gazoucount()
Dim doc As Document
Set doc = ActiveDocument
MsgBox "位置を固定した図形 : " & doc.InlineShapes.Count & _
vbCr & "位置を固定しない図形 : " & doc.Shapes.Count
End Sub
Shapeであれば以前のマクロは有効だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【ワード】マクロで画像を選択する
Word(ワード)
-
ワードの図形をコピー&ペイストのマクロ
Word(ワード)
-
ワード上Shapeの位置情報を統一基準で取得したい
Visual Basic(VBA)
-
-
4
wordのマクロで縮小して貼り付ける方法を教えてください。
Visual Basic(VBA)
-
5
Word VBA 写真 挿入
Word(ワード)
-
6
wordでの指定オブジェクトの削除
Word(ワード)
-
7
エクセル マクロで、選択している画像の数を数えたい
Excel(エクセル)
-
8
WORD VBA オートシェイプにマクロを登録したい
Word(ワード)
-
9
画像を削除したい(VBA)
Word(ワード)
-
10
WORDマクロで特定文字から別文字までを範囲選択したい
Word(ワード)
-
11
Word VBA。各マクロの間に待ち時間を指定するには?
Word(ワード)
-
12
【ワード】挿入した画像のファイル名を知る方法?
Word(ワード)
-
13
VBAマクロで、図形等のオブジェクトを選択(特定)する方法ってありますか
Excel(エクセル)
-
14
WORD2010に図を貼付けるとサイズが変わります
その他(ソフトウェア)
-
15
Word VBA 表内の図を一括中央揃えにするマク
Word(ワード)
-
16
ワードからエクセルへ貼り付けるマクロ
Excel(エクセル)
-
17
VBAで選択した画像を貼り付けたい
Excel(エクセル)
-
18
VBA 同じ名前のオブジェクトを選択したいのですが
Visual Basic(VBA)
-
19
エクセルマクロでワードの一ページ目をコピーして新たに二ページを追加して、一ページ目の内容を貼り付ける
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
複数ファイルにある特定のシー...
-
エクセル グラフの軸の最小値最...
-
EXCEL 複数のシートの同一の位...
-
エクセルで複数のシートをまと...
-
Excel VBA のdebug(F8キー) が...
-
ワードからエクセルへ貼り付け...
-
Excelマクロでオプションボタン...
-
「ロケットマウス」の体系的に...
-
開いているフォルダを全て閉じ...
-
エクセルのマクロ機能で前のシ...
-
複数のシートに対してDo~Loop...
-
VBAでEXCELに埋め込んだPDFを開...
-
マクロボタンを作ってのマクロ...
-
Excelのワークシート上に検索窓...
-
【エクセル】 キーを押すと、...
-
マクロ ブックをマクロなしでコ...
-
TeraTermのマクロについて
-
スライド内のエクセルグラフや...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
EXCELのセルへ、デジタル時計を...
-
複数ファイルにある特定のシー...
-
エクセル グラフの軸の最小値最...
-
Excel VBA のdebug(F8キー) が...
-
エラーになってないのにVBA...
-
Wordの画面を左右にスクロール...
-
EXCEL 複数のシートの同一の位...
-
エクセルのマクロ機能で前のシ...
-
Excelを開いた時に表示さ...
-
エクセルで複数のシートをまと...
-
エクセルでマクロ実行中に任意...
-
ワードからエクセルへ貼り付け...
-
VBAでEXCELに埋め込んだPDFを開...
-
Wordで「原稿用紙○枚」を換算す...
-
Excelマクロでオプションボタン...
-
マクロを実行した日付をセルに...
-
TeraTermのマクロについて
-
Accessのクエリを実行するショ...
おすすめ情報