プロが教えるわが家の防犯対策術!

WORD文書上に、「c:\....jpg」という画像へのアドレスが複数あるとします。そのアドレスを画像に差し替えたいのですがうまくいきません。。
とりあえずマクロでまず「c:\\*jpg」で検索をかけて、文字列をコピー、その文字列を使って図の挿入をしようと思っています。

Sub Macro1()
Dim 画像
Selection.Find.ClearFormatting
With Selection.Find
.Text = "C:\\*jpg"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = True
End With
Selection.Find.Execute
Selection.Copy
※クリップボードの内容を変数「画像」へ代入
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.InlineShapes.AddPicture FileName:= _
画像, LinkToFile:=False, SaveWithDocument:= _
True
End Sub

以上が今考えているマクロなんですが、※の部分で変数「画像」へクリップボードから代入をする処理がどうにもうまくいきません。
wordのマクロは初めていじるのでよくわかりません。
どなたかわかる方教えてください。よろしくお願いします。

A 回答 (2件)

適当ですよん。



Sub test()
  Dim 画像 As String
  Dim 絵 As InlineShape
  
  Selection.HomeKey Unit:=wdStory
  Selection.Find.ClearFormatting
  Selection.Find.Text = "C:\\*jpg"
  Selection.Find.Forward = True
  Selection.Find.Execute
  '↓ヒットしなくなるまで繰り返し
  Do While Selection.Find.Found = True
    画像 = Selection.Text
    Selection.Delete Unit:=wdCharacter, Count:=1
    Set 絵 = Selection.InlineShapes.AddPicture _
      (FileName:=画像, LinkToFile:=False, _
      SaveWithDocument:=True)
    
    With 絵
      .Width = 50#
      .Height = 50#
    End With
    Selection.Find.Execute
  Loop
End Sub
    • good
    • 0
この回答へのお礼

最初うまく動かなくて
Selection.Find.MatchWildcards = True
を足したらできました。

すごく助かりました。
ありがとうございます。

お礼日時:2004/07/31 11:30

できるだけ変更しないようにするなら、



Selection.Copy

画像 = Selection.Text

に変えてみて下さい。

この回答への補足

ありがとうございます。
できました。

が、まだわからないことがありました。
・挿入する画像のサイズを設定したい。
・検索対象がなくなるまで処理を繰り返したいが、うまく終わることができない(とりあえず全体をdoとloopで挟んでエラー終了で終わってます)

変更はいくらでもしてかまわないのでいい方法があれば教えてください。

補足日時:2004/07/29 16:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!