I recently used one of those scanner/copier/fax/do-it-all machines in the office to scan in several documents. Each time you scan in a document or set of documents, they get e-mailed to you as an attachment. To my knowledge, Outlook doesn’t have the ability to save attachments from several messages at once, so I wrote this macro. It will prompt for a foldername, then save all attachments from all currently selected items to that folder. Without further ado:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106<div class='bogus-wrapper'><notextile><figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span> <span class='line-number'>2</span> <span class='line-number'>3</span> <span class='line-number'>4</span> <span class='line-number'>5</span> <span class='line-number'>6</span> <span class='line-number'>7</span> <span class='line-number'>8</span> <span class='line-number'>9</span> <span class='line-number'>10</span> <span class='line-number'>11</span> <span class='line-number'>12</span> <span class='line-number'>13</span> <span class='line-number'>14</span> <span class='line-number'>15</span> <span class='line-number'>16</span> <span class='line-number'>17</span> <span class='line-number'>18</span> <span class='line-number'>19</span> <span class='line-number'>20</span> <span class='line-number'>21</span> <span class='line-number'>22</span> <span class='line-number'>23</span> <span class='line-number'>24</span> <span class='line-number'>25</span> <span class='line-number'>26</span> <span class='line-number'>27</span> <span class='line-number'>28</span> <span class='line-number'>29</span> <span class='line-number'>30</span> <span class='line-number'>31</span> <span class='line-number'>32</span> <span class='line-number'>33</span> <span class='line-number'>34</span> <span class='line-number'>35</span> <span class='line-number'>36</span> <span class='line-number'>37</span> <span class='line-number'>38</span> <span class='line-number'>39</span> <span class='line-number'>40</span> <span class='line-number'>41</span> <span class='line-number'>42</span> <span class='line-number'>43</span> <span class='line-number'>44</span> <span class='line-number'>45</span> <span class='line-number'>46</span> <span class='line-number'>47</span> <span class='line-number'>48</span> <span class='line-number'>49</span> <span class='line-number'>50</span> <span class='line-number'>51</span> <span class='line-number'>52</span> <span class='line-number'>53</span> </pre></td><td class='code'><pre><code class=''><span class='line'><font color="#000080"><b>Public Sub </b></font>SaveAllAttachments<font color="#808080">() </span><span class='line'> </span><span class='line'> </font><font color="#000080"><b>Dim </b></font>olTask <font color="#000080"><b>As </b></font>Outlook<font color="#808080">.</font>TaskItem </span><span class='line'> <font color="#000080"><b>Dim </b></font>olItem <font color="#000080"><b>As </b></font>Outlook<font color="#808080">.</font>MailItem </span><span class='line'> <font color="#000080"><b>Dim </b></font>olExp <font color="#000080"><b>As </b></font>Outlook<font color="#808080">.</font>Explorer </span><span class='line'> <font color="#000080"><b>Dim </b></font>olApp <font color="#000080"><b>As </b></font>Outlook<font color="#808080">.</font>Application </span><span class='line'> <font color="#000080"><b>Dim </b></font>olAttach <font color="#000080"><b>As </b></font>Outlook<font color="#808080">.</font>Attachment </span><span class='line'> </span><span class='line'> <font color="#000080"><b>Dim </b></font>objWord <font color="#000080"><b>As Object </span><span class='line'> Set </b></font>olApp <font color="#808080">= </font>Outlook<font color="#808080">.</font><font color="#000080"><b>CreateObject</b></font><font color="#808080">(</font><font color="#800000">"Outlook.Application"</font><font color="#808080">) </span><span class='line'> </font><font color="#000080"><b>Set </b></font>olExp <font color="#808080">= </font>olApp<font color="#808080">.</font>ActiveExplorer </span><span class='line'> </span><span class='line'> <font color="#000080"><b>Dim </b></font>cntSelection <font color="#000080"><b>As Integer </span><span class='line'> </b></font>cntSelection <font color="#808080">= </font>olExp<font color="#808080">.</font>Selection<font color="#808080">.</font>Count </span><span class='line'> </span><span class='line'> <font color="#008000"><i>'Declare a variable as a FileDialog object. </span><span class='line'> </i></font><font color="#000080"><b>Dim </b></font>fd <font color="#000080"><b>As </b></font>Office<font color="#808080">.</font>FileDialog </span><span class='line'> </span><span class='line'> <font color="#008000"><i>' Start word if necessary </span><span class='line'> </i></font><font color="#000080"><b>Set </b></font>objWord <font color="#808080">= </font><font color="#000080"><b>GetObject</b></font><font color="#808080">(</font><font color="#800000">""</font><font color="#808080">, </font><font color="#800000">"Word.Application"</font><font color="#808080">) </span><span class='line'> </font><font color="#000080"><b>If </b></font>objWord <font color="#000080"><b>Is Nothing Then </span><span class='line'> Set </b></font>objWord <font color="#808080">= </font><font color="#000080"><b>CreateObject</b></font><font color="#808080">(</font><font color="#800000">"Word.Application"</font><font color="#808080">) </span><span class='line'> </font><font color="#000080"><b>End If </span><span class='line'> </span><span class='line'> </b></font><font color="#008000"><i>'Create a FileDialog object as a File Picker dialog box. </span><span class='line'> </i></font><font color="#000080"><b>Set </b></font>fd <font color="#808080">= </font>objWord<font color="#808080">.</font>FileDialog<font color="#808080">(</font>msoFileDialogFolderPicker<font color="#808080">) </span><span class='line'> </span><span class='line'> </font><font color="#000080"><b>With </b></font>fd </span><span class='line'> <font color="#808080">.</font>InitialView <font color="#808080">= </font>msoFileDialogViewList </span><span class='line'> <font color="#000080"><b>If </b></font><font color="#808080">.</font>Show <font color="#808080">= -</font><font color="#FF0000">1 </font><font color="#000080"><b>Then </span><span class='line'> </b></font>Path <font color="#808080">= </font>fd<font color="#808080">.</font>SelectedItems<font color="#808080">(</font><font color="#FF0000">1</font><font color="#808080">) </span><span class='line'> </font><font color="#000080"><b>Else </span><span class='line'> MsgBox </b></font><font color="#800000">"error" </span><span class='line'> </font><font color="#000080"><b>If </b></font>objWord<font color="#808080">.</font>Documents<font color="#808080">.</font>Count <font color="#808080">= </font><font color="#FF0000">0 </font><font color="#000080"><b>Then </span><span class='line'> </b></font>objWord<font color="#808080">.</font>Quit </span><span class='line'> <font color="#000080"><b>End If </span><span class='line'> Exit Sub </span><span class='line'> End If </span><span class='line'> End With </span><span class='line'> </span><span class='line'> If </b></font>objWord<font color="#808080">.</font>Documents<font color="#808080">.</font>Count <font color="#808080">= </font><font color="#FF0000">0 </font><font color="#000080"><b>Then </span><span class='line'> </b></font>objWord<font color="#808080">.</font>Quit </span><span class='line'> <font color="#000080"><b>End If </span><span class='line'> </span><span class='line'> </b></font><font color="#008000"><i>' Loop through the selected mail items and save the attachments </span><span class='line'> </i></font><font color="#000080"><b>For </b></font>i <font color="#808080">= </font><font color="#FF0000">1 </font><font color="#000080"><b>To </b></font>cntSelection </span><span class='line'> <font color="#000080"><b>Set </b></font>olItem <font color="#808080">= </font>olExp<font color="#808080">.</font>Selection<font color="#808080">.</font>Item<font color="#808080">(</font>i<font color="#808080">) </span><span class='line'> </font><font color="#000080"><b>For Each </b></font>olAttach <font color="#000080"><b>In </b></font>olItem<font color="#808080">.</font>Attachments </span><span class='line'> olAttach<font color="#808080">.</font>SaveAsFile Path <font color="#808080">& </font><font color="#800000">"\" </font><font color="#808080">& </font>olAttach<font color="#808080">.</font>FileName </span><span class='line'> <font color="#000080"><b>Next </b></font>olAttach </span><span class='line'> <font color="#000080"><b>Next </span><span class='line'> </span><span class='line'>End Sub</b></font></font></span></code></pre></td></tr></table></div></figure></notextile></div>
Hope somebody out there finds it useful!