Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
WordへJpgファイルを挿入するのですが
投稿日時: 20/07/14 20:12:13
投稿者: さむさむ

いつもお世話になっています。
OutLookメールに添付されたJpgファイルをWordのTableに挿入するマクロを組んでいるのですが、複数のJpgファイルを挿入しようとするのですが、2枚目を挿入するメッソドをかけても最初に挿入した画像が挿入されます。コードは以下です。どなたかご教示願います。
 
Sub GetOutLookMailObje(ByVal Tbl As Object)
 
    Dim objitem As Object
    Dim objins As Inspector
    Set objins = Outlook.Application.ActiveInspector
    On Error Resume Next
    Set objitem = objins.CurrentItem 'メールを開いていないとエラー
    If Err.Number = 91 Then MsgBox "メールを開いてください": Exit Sub
     
    mstrPath = ThisWorkbook.Path & "\Pbuf\"
    Set objAttchments = objitem.Attachments
     
    n = 1
    For Each obn In objAttchments
     
        If obn Like "*[jpg,JPG,jpeg,JPEG]" = True Then 'Jpegファイルのみ
             
            strFile = mstrPath & obn
             
            objAttchments.Item(1).SaveAsFile strFile '←添付ファイルオブジェクトの保存Item(i)を一時フォルダに保存
' DoEvents
' Debug.Print strFile
            Tbl.Cell(n, 2).Range.InlineShapes.AddPicture Filename:=strFile
             
            Kill strFile
             
            Tbl.Cell(n, 2).Range.InlineShapes.AddPicture Filename:=Empty
            DoEvents
            strFile = Empty
            n = n + 1
        End If
    Next obn
     
    Application.DisplayAlerts = False
    'Debug.Print objitem.Body 'メール本文 'アクセス許可が必要
    Set objins = Nothing
    Set objitem = Nothing
 
End Sub
メール添付ファイルをいったんPbufフォルダに置き、同じパス名でワードに挿入しています。2度目のLoopの時にはファイル名も変わっていることは確認しているのですが、1回目のファイルが挿入されます。
以前エクセルでLoadPictureを使ったとき、 Filenameをクリアした方が良かったのでEmptyにしたのですが、うまくいきません。

回答
投稿日時: 20/07/14 22:13:50
投稿者: eden

>objAttchments.Item(1).SaveAsFile strFile
ここですかね

投稿日時: 20/07/16 05:28:45
投稿者: さむさむ

edenさん ご教示ありがとうございました。
ご指摘の通りでした。
objAttchments.Item(1).SaveAsFile strFile→objAttchments.Item().SaveAsFile strFile
で解決しました。
Itemのindexは0からではないみたいですね。1から始まっているようです。詳しくは調べていないのですが。