電子メールのすべての添付ファイルをに圧縮したい場合があります zip Outlookで直接ファイルします。 この場合、この記事で紹介したVBAコードを使用して、この機能を実現できます。
既定では、Outlookの添付ファイルのサイズ制限があります。POP20、IMAP、またはその他のWebベースの電子メールアカウントの場合は3 MB、Exchangeアカウントの場合は10MBです。 そのため、添付ファイルの合計サイズが制限を超えると、関連するエラーが発生します。 この場合、すべての添付ファイルをXNUMXつに圧縮することをお勧めします。 zip ファイルにソフトウェアを指定する必要があります。
ただし、ご覧のとおり、Outlookはそのような直接的な機能を提供していません。 つまり、最初に行う必要があります zip これらのファイルをハードドライブに保存してから、新しく作成したファイルを再接続します zip ファイル。 実際には、most ユーザーは、Outlook内で直接それを達成できることを望んでいます。 この要件に応えて、VBAを使用してそれを実現する方法を以下に紹介します。
すべての添付ファイルをに圧縮します Zip File
- まず、Outlookアプリケーションを起動します。
- 次に、Outlookのメインウィンドウで「Alt + F11」キーボタンを押します。
- 次に、新しいOutlook VBAエディターウィンドウで、モジュールを開きます。
- 続いて、次のVBAコードをコピーしてモジュールに貼り付けます。
Sub ZipAttachments()
Dim objMail As Outlook.MailItem
Dim objAttachments As Outlook.attachments
Dim objAttachment As Outlook.Attachment
Dim objFileSystem As Object
Dim objShell As Object
Dim varTempFolder As Variant
Dim varZipFile As Variant
'Save the attachments to Temporary folder
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
varTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp " & Format(Now, "dd-mm-yyyy- hh-mm-ss-")
MkDir (varTempFolder)
varTempFolder = varTempFolder & "\"
Set objMail = Outlook.Application.ActiveInspector.CurrentItem
Set objAttachments = objMail.attachments
For Each objAttachment In objAttachments
objAttachment.SaveAsFile (varTempFolder & objAttachment.FileName)
Next
'Create a new zip file
varZipFile = InputBox("Specify a name for the new zip file", "Name Zip File", objMail.Subject)
varZipFile = objFileSystem.GetSpecialFolder(2).Path & "\" & varZipFile & ".zip"
Open varZipFile For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
Close #1
'Copy all the saved attachments to the new zip file
Set objShell = CreateObject("Shell.Application")
objShell.NameSpace(varZipFile).CopyHere objShell.NameSpace(varTempFolder).Items
'Keep macro running until Compressing is done
On Error Resume Next
Do Until objShell.NameSpace(varZipFile).Items.Count = objShell.NameSpace(varTempFolder).Items.Count
Application.Wait (Now + TimeValue("0:00:01"))
Loop
On Error GoTo 0
'Delete all the attachments
Set objAttachments = objMail.attachments
While objAttachments.Count > 0
objAttachments.Item(1).Delete
Wend
'Add the new zip file to the current email
objMail.attachments.Add varZipFile
'Prompt
MsgBox ("Complete!")
End Sub
- その後、Outlookのマクロ設定をチェックして、マクロが許可されていることを確認する必要があります。
- 後で、通常どおり、新しいVBAプロジェクトをメッセージウィンドウのクイックアクセスツールバーに追加できます。
- 最終的には、試してみることができます。
- まず、新しいメールを作成し、いくつかのファイルを添付します。 または、添付ファイルの多いメールを開くだけです。
- 次に、クイックアクセスツールバーのマクロボタンをクリックします。
- 後で、の名前を指定する必要があります zip ファイルを作成し、「OK」をクリックします。 デフォルトでは、メールの件名と同じに設定されます。
- 一度に、すべての添付ファイルが圧縮されて zip 次のスクリーンショットのようなファイル:
Unzip 。Zip Outlookで直接添付ファイル
「。」が付いた添付ファイルを受け取ることは避けられません。zip」ファイル拡張子は時々。 このシナリオでは、直接unを実行することをお勧めしますzip このようなファイルは、ローカルドライブに保存および解凍するのではなく、Outlook内から取得します。 Outlookにはそのようなネイティブ機能はありませんが、VBAを使用して取得することもできます。 詳細については、別の記事を参照してください–「国連する方法zip 。Zip VBAを介してOutlookに直接添付ファイル"。
著者紹介:
Shirley Zhangは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 SQL修正 と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com



