• ベストアンサー

マクロについて(word2003)

こんばんは。100枚程度のJPGの写真データを word(2003)の表1つの表につき、1枚の写真を貼り付けたいと思っています。 (100の表に100の写真データ、OS:windowsXP) いちいちwordの図の挿入をしていると、数が多いので手間がかかります。 そこでマクロ等を組んで、効率良く写真をwordに貼り付けたいです。 具体的にどうすればよいか教えて下さい。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • avanzato
  • ベストアンサー率54% (52/95)
回答No.2

恐らくこのコードで動作すると思います。 Sub JPG挿入() '変数宣言 Dim FolderPath As String 'フォルダパス Dim FileName As String 'ファイル名 Dim TableX As Long, TableY As Long, TableNo As Long TableNo = 1 '---使用環境に合わせて変更--- FolderPath = "C:\Documents and Settings\ABCDEF\My Documents\My Pictures\" 'ファイルの置いてある場所 '---------------------------- '挿入位置指定 TableX = InputBox("挿入するのは何列目ですか?(1~3)") TableY = InputBox("挿入するのは何行目ですか?(1~2)") 'JPG検索処理 FileName = Dir(FolderPath & "*.jpg") 'FolderPathにあるJPGファイル名をFileNameに入れる Do While FileName <> "" '見つからなくなるまでループ ActiveDocument.Range.Tables(TableNo).Cell(TableY, TableX).Select Selection.InlineShapes.AddPicture FileName:=FolderPath & FileName, LinkToFile:=False, SaveWithDocument:=True '見つかったJPGを挿入 TableNo = TableNo + 1 '次のテーブルに移動 FileName = Dir() '次のJPGファイルを探す Loop 'Do~に戻る MsgBox ("終了") '終了メッセージ End Sub ※エラートラップは入れていません。

redgreen
質問者

お礼

ありがとうございます。 早速作成してみます。

その他の回答 (1)

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.1

こんにちは。 確かにその操作は面倒ですね・・・。 とりあえず指定フォルダのJPGを拾って挿入するマクロはこちらになります。 Sub JPG挿入() '変数宣言 Dim FolderPath As String 'フォルダパス Dim FileName As String 'ファイル名 '---使用環境に合わせて変更--- FolderPath = "C:\Documents and Settings\ABCDEF\My Documents\My Pictures\" 'ファイルの置いてある場所 '---------------------------- 'JPG検索処理 FileName = Dir(FolderPath & "*.jpg") 'FolderPathにあるJPGファイル名をFileNameに入れる Do While FileName <> "" '見つからなくなるまでループ Selection.InlineShapes.AddPicture FileName:=FolderPath & FileName, LinkToFile:=False, SaveWithDocument:=True '見つかったJPGを挿入 FileName = Dir() '次のJPGファイルを探す Loop 'Do~に戻る MsgBox ("終了") '終了メッセージ End Sub ※ただ挿入するだけですので表には手動移動になります。 >100の表 についてですが、1x1の表(枠)が100個あるのかそれとも1x100の表が1個あるのか如何でしょうか? それによって表のセルに入れることも可能になります。

redgreen
質問者

補足

早々のご回答ありがとうございます。 表ですが、縦2×横3の表が100個あり、その左上の欄に写真を 挿入したいと思っています。 ※来月は左中央に写真を挿入します。1ヶ月×100個で、 最終的には、6ヶ月×600個になります。 宜しくお願いいたします。

関連するQ&A

専門家に質問してみよう