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

仕事で、ワード2010で作成した表(見出しを最上部一行と左端一列も含めて5行、3列の表)に、フォルダ内の写真をマクロを使って一括で貼り付けたいのですが、うまくいきません。
マクロはほぼ未経験で色々調べて、なんとか真っ新のファイルには貼り付けることに成功しましたが、表中マスに一枚ずつ並べる方法はあるのでしょうか?一応現在のコードを載せておきます。

Sub 画像取込R()
Dim fn As Variant
Const MYFOLDER = "C:\My Documents\My Pictures\"
Selection.HomeKey Unit:=wdStory
fn = Dir(MYFOLDER & "*.jpg")
Do While fn <> ""
InsertFile MYFOLDER & fn
fn = Dir()
Loop
MsgBox "貼り付け完了"
End Sub
Private Sub InsertFile(fn As Variant)
Selection.TypeParagraph
Selection.InlineShapes.AddPicture _
FileName:=fn, _
LinkToFile:=False, _
SaveWithDocument:=True
Selection.TypeParagraph
Selection.TypeText _
Text:=Mid(fn, InStrRev(fn, "\") + 1)
Selection.TypeParagraph
End Sub

コピペできるようなコードの例を教えて頂けると大変助かります。
宜しくお願い致します。

A 回答 (1件)

質問後すぐに閲覧していたのですが、苦手なマクロの質問だったので、


他の回答がつかないかと思って回答を控えていました。
回答がされないままだったので、私なりに調べた範囲での回答ですが、
参考程度にはなると思います。

質問にあるマクロの場合、「 Private Sub マクロ名」でモジュール内から
呼び出す形式で、画像とファイル名を設定していますよね。
この方法だと私は難しかったので、そのまま一つのマクロにしています。


Sub 画像取込R()
Dim iR, iC As Integer
Dim fn As Variant
Dim myTable As Table
Dim myCell As Cell
Dim myRng As Range

Const MYFOLDER = "C:\My Documents\My Pictures\"
fn = Dir(MYFOLDER & "*.jpg")
Set myTable = ActiveDocument.Tables(1)

For iR = 2 To 5
For iC = 2 To 3

If fn <> "" Then
Set myCell = myTable.Cell(iR, iC)
Set myRng = myCell.Range
  myRng.InlineShapes.AddPicture _
  FileName:=MYFOLDER & fn, _
  LinkToFile:=False, _
  SaveWithDocument:=True
  myRng.InsertAfter vbCrLf & Mid(fn, InStrRev(fn, "\") + 1)

 fn = Dir()
End If

Next iC
Next iR

Set myTable = Nothing
Set myCell = Nothing
Set myRng = Nothing

MsgBox "貼り付け完了"

End Sub

このマクロの具体的な説明は、苦手ということと理解していない部分が
多くあるので、補足されても追加回答できないと思います。
    • good
    • 0
この回答へのお礼

助かりました

ありがとうございます。たった数秒で見事に表に収まり、感動ものです!
ググって適当にコピペしたので形式は全く存じておりませんでした。
本当にありがとうございました!

お礼日時:2016/03/10 10:22

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