本文に埋め込まれた画像を除いて添付ファイルをカウントするマクロ


コメントにて以下のご要望をいただきました。


添付ファイル数を数えるマクロで、挿入→ファイルの添付で添付したファイルのみ数え、本文に直接貼ったファイルは数えないというようなものは可能ですか?

Attachments.Countで数えようとすると、本文に直接貼ったものを数えてしまい、

返信の引用で画像が貼られている場合はこの画像もカウントしてしまうため困っています


添付ファイルが埋め込み画像かどうかについては、以前記事にした添付ファイルが埋め込み画像かどうかを判断する方法で判断できます。
この方法を使用して現在開いているアイテムの埋め込み画像を除いた添付ファイルの数を数えるマクロは以下のようになります。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub ShowAttachCount()
     Dim c As Integer
     Dim objAttach As Attachment
     '
     c = 0
     For Each objAttach In ActiveInspector.CurrentItem.Attachments
         If Not IsAttachEmbedded(objAttach) Then
             c = c + 1
         End If
     Next
     '
     MsgBox "添付ファイル数: " & c
End Sub
'
Private Function IsAttachEmbedded(objAttach As Attachment)
     Const PR_ATTACH_FLAGS = "http://schemas.microsoft.com/mapi/proptag/0x37140003"
     Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001E"
     Dim iAttFlags As Integer
     Dim strAttCID As String
     ' 既定は通常の添付ファイル
     IsAttachEmbedded = False
     ' フラグが 0 以外なら埋め込み画像
     iAttFlags = objAttach.PropertyAccessor.GetProperty(PR_ATTACH_FLAGS)
     If iAttFlags <> 0 Then
         IsAttachEmbedded = True
     End If
     ' Content ID があれば埋め込み画像
     strAttCID = objAttach.PropertyAccessor.GetProperty(PR_ATTACH_CONTENT_ID)
     If strAttCID <> "" Then
         IsAttachEmbedded = True
     End If
     ' OLE オブジェクトなら埋め込み画像
     If objAttach.Type = olOLE Then
         IsAttachEmbedded = True
     End If
End Function

マクロの登録方法やメニューへの追加について

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中