<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Outlook</title><link>http://blog.shareoffice.it/giannigiaccaglini/category/134.aspx</link><description>Outlook</description><managingEditor>Gianni Giaccaglini</managingEditor><dc:language>it-IT</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Gianni Giaccaglini</dc:creator><title>Spedire circolari Outlook da indirizzari Excel</title><link>http://blog.shareoffice.it/giannigiaccaglini/archive/2011/12/20/11076.aspx</link><pubDate>Tue, 20 Dec 2011 10:49:00 GMT</pubDate><guid>http://blog.shareoffice.it/giannigiaccaglini/archive/2011/12/20/11076.aspx</guid><wfw:comment>http://blog.shareoffice.it/giannigiaccaglini/comments/11076.aspx</wfw:comment><comments>http://blog.shareoffice.it/giannigiaccaglini/archive/2011/12/20/11076.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.shareoffice.it/giannigiaccaglini/comments/commentRss/11076.aspx</wfw:commentRss><trackback:ping>http://blog.shareoffice.it/giannigiaccaglini/services/trackbacks/11076.aspx</trackback:ping><description>&lt;h1 style="MARGIN: 24pt 0cm 0pt"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Spedire circolari Outlook da indirizzari Excel&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:PersonName ProductID="La tecnologia OLE Automation" w:st="on"&gt;&lt;st1:PersonName ProductID="La tecnologia OLE" w:st="on"&gt;La tecnologia &lt;B style="mso-bidi-font-weight: normal"&gt;OLE&lt;/B&gt;&lt;/st1:PersonName&gt;&lt;B style="mso-bidi-font-weight: normal"&gt; Automation&lt;/B&gt;&lt;/st1:PersonName&gt;&lt;B style="mso-bidi-font-weight: normal"&gt; &lt;/B&gt;, detta anche sinteticamente &lt;STRONG&gt;Automation&lt;/STRONG&gt;, permette proficui dialoghi fra applicativi. Si tratta di un sistema Client/Server dove il primo (Client) richiama la libreria del secondo (Server) utilizzandone propriet&amp;#224; e metodi.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Il codice macro che propongo deriva da una soluzione pi&amp;#249; completa dovuta a un mio corrispondente conosciuto tramite ShareOffice. Trattasi &amp;#8211; onore al merito! &amp;#8211; di &lt;B style="mso-bidi-font-weight: normal"&gt;Ettore Caliendo&lt;/B&gt; che tra l&amp;#8217;altro sfrutta una caratteristica non a tutti ben nota: il &lt;B style="mso-bidi-font-weight: normal"&gt;formato HTML&lt;/B&gt; per il messaggio Outlook. Di conseguenza si pu&amp;#242; inglobare nel messaggio un&amp;#8217;immagine, il logo della ditta nella fattispecie, mediante il tag &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;IMG...&gt;&lt;/B&gt;(evidenziato in giallo, insieme ad altre particolarit&amp;#224;, nella macro qui sotto riportata).&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Il predetto Ettore all&amp;#8217;inizio mi aveva palesato una perplessit&amp;#224;, dovuta al fatto che tale logo non perveniva ai suoi corrispondenti. Per non sapere n&amp;#233; leggere n&amp;#233; scrivere (in tema di messaggi Outlook in formato HTML, lo confesso...)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;tuttavia gli ho subito detto: dovresti inserirla su un sito web, &lt;U&gt;altrimenti come potrebbero gli estranei vedere la figura che risiede sul TUO PC&lt;/U&gt;?.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Compresa l&amp;#8217;antifona, il rimedio &amp;#232; stato provato e andato in porto, con reciproca soddisfazione. Ed ecco, a beneficio delle masse,&amp;nbsp;una Sub mutuata dal sullodato Ettore e un po' semplificata che va incorporata in un opportuno archivio Excel, tipo &lt;STRONG&gt;MessOutlook.xls&lt;/STRONG&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;,&lt;STRONG&gt; &lt;/STRONG&gt;o &lt;B style="mso-bidi-font-weight: normal"&gt;MessOutlook.xlsm&lt;/B&gt; con Office 2010.&amp;nbsp;Ho pensato di&amp;nbsp;corredarla di due argomenti, il &lt;I style="mso-bidi-font-style: normal"&gt;Cliente &lt;/I&gt;e l&amp;#8217;&lt;I style="mso-bidi-font-style: normal"&gt;IndirEmail &lt;/I&gt;di chiara semantica:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;------------------&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Sub MessHTML(Cliente As String, IndirEmail As String)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;Dim Corpo As String&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;Dim Outlk As New Outlook.Application&lt;/SPAN&gt;&lt;/B&gt; &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #00b050"&gt;' Early binding&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim MioMess As Outlook.MailItem&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;Set MioMess = Outlk.CreateItem(olMailItem&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;Corpo = "&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;p&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; &lt;SPAN style="BACKGROUND: yellow"&gt;"&lt;B style="mso-bidi-font-weight: normal"&gt;&amp;lt;img border='0'&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;src='http://www.elicasrl.eu/loghi/logo_Elica.bmp'&amp;gt;&lt;/B&gt;&lt;/SPAN&gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;lt;img border='0' src='http://www.elicasrl.eu/loghi/logo_Crif.bmp' &amp;gt;&amp;lt;/p&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;lt;p&amp;gt;&amp;lt;font face='Tahoma' size='4'&amp;gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;Gentilissimo/a &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;" &lt;B style="mso-bidi-font-weight: normal"&gt;&amp;amp; Cliente&lt;/B&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt; &lt;/B&gt;&amp;amp; ",&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "la presente per richiederLe quanto segue: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "RingraziandoLa anticipatamente, Le porgiamo distinti saluti.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; Elica srl&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;amp;nbsp; Rossi Asdrubale &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "-------------------------------------------------------------------------&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "TRAFFICI VARI srl&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "Via Sette bellezze n. 103&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "00123 Roma (RM)&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "e-mail: settebell@gmail.it&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "Tel. ******&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "Fax&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;******&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "web: www.settebell.com&amp;lt;br&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;lt;/font&amp;gt;&amp;lt;/p&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;lt;/body&amp;gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt; mso-highlight: yellow" lang=EN-US&gt;With MioMess&lt;/SPAN&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;.Subject = "Richiesta chiarimenti"&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;.Bcc = "pallino.pinco@lib.it"&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;.To = IndirEmail&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;.HTMLBody = Corpo&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;End With&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;MioMess.Send &lt;SPAN style="COLOR: #00b050"&gt;' Invia il messaggio&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;' Libera le variabili &amp;#8220;pesanti&amp;#8221;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Set MioMess = Nothing&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Set Outlk = Nothing&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;------------------&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;A ignari &amp;amp; immemori comincio col ricordare che per funzionare Automation chiede che nell'Editor VBA si fissino i riferimenti opportuni, mediante il comando &lt;B style="mso-bidi-font-weight: normal"&gt;Strumenti &amp;gt; Riferimenti... &lt;/B&gt;scegliendo poi &lt;I style="mso-bidi-font-style: normal"&gt;Microsoft Outlook 12 Object Library &lt;/I&gt;nel nostro caso (diventa &lt;I style="mso-bidi-font-style: normal"&gt;Outlook 14&lt;/I&gt; con Office 2010).&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Qui vale la pena di fare un paio di osservazioni. La prima &amp;#232; l&amp;#8217;utilizzo della sintassi &lt;I style="mso-bidi-font-style: normal"&gt;As New Outlook.Application, &lt;/I&gt;che al pregio della sinteticit&amp;#224; unisce quello di fornire il cosiddetto &lt;I style="mso-bidi-font-style: normal"&gt;Early Binding &lt;/I&gt;(associazione immediata) contrapposto al &lt;I style="mso-bidi-font-style: normal"&gt;Late Binding &lt;/I&gt;(associazione tardiva) offerto invece dalla classica istruzione&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt; &lt;/I&gt;&lt;/B&gt;utilizzata dal nostro amico:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT face=Calibri&gt;Outlk = CreateObject(&amp;#8220;Outlook.Application&amp;#8221;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Nel qual caso la variabile &amp;#232; del tipo generale &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Object&lt;/I&gt;&lt;/B&gt;, con due conseguenze: &lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ansi-language: IT; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-language: AR-SA"&gt;maggior lentezza e segnalazione di errori solo a run-time,&amp;nbsp;unita alla mancanza dell&amp;#8217;intellisense.&lt;/SPAN&gt; Infatti solo con l&amp;#8217;early binding accanto al punto (.) della variabile&lt;I style="mso-bidi-font-style: normal"&gt; Outlk &lt;/I&gt;spuntano, comodamente, cose come &lt;I style="mso-bidi-font-style: normal"&gt;.Subject &lt;/I&gt;(l&amp;#8217;oggetto del messaggio), &lt;I style="mso-bidi-font-style: normal"&gt;.Bcc &lt;/I&gt;(il corrispondente in &amp;#8220;carbon copy&amp;#8221;, che pu&amp;#242; convenire assumere come il proprio email, per un riscontro, ovviamente al posto del comico e fantomatico &lt;/FONT&gt;&lt;A href="mailto:pallino.pinco@lib.it"&gt;&lt;FONT face=Calibri&gt;pallino.pinco@lib.it&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt;!), &lt;I style="mso-bidi-font-style: normal"&gt;.To IndirEmail &lt;/I&gt;(l&amp;#8217;email del destinatario) e &lt;I style="mso-bidi-font-style: normal"&gt;.HTMLBody = Corpo &lt;/I&gt;(il &amp;#8220;corpo&amp;#8221; del messaggio in formato HTML).&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;La seconda osservazione &amp;#232; il fatto che il buon Ettore ha impostato i riferimenti non a &lt;I style="mso-bidi-font-style: normal"&gt;Microsoft Outlook &lt;/I&gt;bens&amp;#236; a &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Microsoft Office 12 &lt;/I&gt;&lt;/B&gt;(o &lt;I style="mso-bidi-font-style: normal"&gt;14 &lt;/I&gt;nell&amp;#8217;edizione 2010), con un certo mio stupore! A caldo penso che questa sia pi&amp;#249; generale, ergo pi&amp;#249; &amp;#8220;pesante&amp;#8221; di quella che userebbe il sottoscritto. Ma non ne sono sicuro.&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BACKGROUND: #daeef3; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-border-alt: solid windowtext .5pt; mso-element: para-border-div; mso-background-themecolor: accent5; mso-background-themetint: 51"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #daeef3; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent5; mso-background-themetint: 51; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Nota&lt;/B&gt;. Posso per&amp;#242; testimoniare che, in un&amp;#8217;altra circostanza &amp;#8211; Automation di Word &amp;#8211; &lt;st1:PersonName ProductID="la libreria MS Office" w:st="on"&gt;&lt;st1:PersonName ProductID="la libreria MS" w:st="on"&gt;la libreria MS&lt;/st1:PersonName&gt; Office&lt;/st1:PersonName&gt; NON presentava una certa propriet&amp;#224;... Misteri dell&amp;#8217;OLE Automation...&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Tornando al testo del messaggio, a parte la sua genericit&amp;#224;, che&amp;nbsp;travalica il pi&amp;#249; squallido umorismo, esso dovrebbe essere chiaro a chiunque mastica il linguaggio HTML, faccio solo notare che con il concatenamento &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Gentilissimo &amp;amp; Cliente &lt;/I&gt;&lt;/B&gt;si ottiene l&amp;#8217;inserimento del nome del destinatario nel corpo del messaggio stesso.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;A questo punto, fatte le debite personalizzazioni, gl&amp;#8217;interessati possono testare la predetta routine con un&amp;#8217;istruzione del tipo seguente:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;MessHTML "Michele Topo", &lt;A href="mailto:topolino@disney.com"&gt;topolino@disney.com&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Pi&amp;#249; vantaggiosamente si pu&amp;#242; pensare a una serie di nominativi sul foglio Excel affiancati dai rispettivi indirizzi di posta elettronica:&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184" class=MsoTableGrid border=1 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 244.45pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" vAlign=top width=326&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Matteo Evangelista&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 244.45pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=326&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;A href="mailto:matteoevang@gmail.com"&gt;&lt;FONT face=Calibri&gt;matteoevang@gmail.com&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 244.45pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width=326&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Giovanni Telegrafista&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 244.45pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width=326&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;A href="mailto:giovantelegrafist@tin.it"&gt;&lt;FONT face=Calibri&gt;giovantelegrafist@tin.it&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Eccetera.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Immaginando, per estrema semplicit&amp;#224; che i due dati siano collocati nelle colonne A e B a partire da A1, si potrebbe ricorrere alla procedura dell&amp;#8217;evento &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;BeforeDoubleClick&lt;/I&gt;&lt;/B&gt;:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If Target.Column &amp;lt;&amp;gt; 1 Or Target.Value = "" Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Cancel = True &lt;SPAN style="COLOR: #00b050"&gt;' Annulla il minieditor della cella&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Exit Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;End If&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;MessHTML Target.Value, Target.Offset(0, 1).Value&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Cancel = True &lt;SPAN style="COLOR: #00b050"&gt;' Annulla il minieditor della cella&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Che sul doppio click in una cella non vuota in colonna A lancia il massaggio Outlook a quel dato soggetto.&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BACKGROUND: #daeef3; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-border-alt: solid windowtext .5pt; mso-element: para-border-div; mso-background-themecolor: accent5; mso-background-themetint: 51"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #daeef3; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent5; mso-background-themetint: 51; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Nota &lt;/B&gt;ultimissima. In altri mondo OLE Automation si ha &lt;st1:PersonName ProductID="la propriet&amp;#224; Visible" w:st="on"&gt;la propriet&amp;#224; &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Visible&lt;/I&gt;&lt;/B&gt;&lt;/st1:PersonName&gt;, che va impostata a &lt;I style="mso-bidi-font-style: normal"&gt;True &lt;/I&gt;se si vuole che Excel o Word siano visualizzati, altrimenti agiscono nell&amp;#8217;ombra.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Nel caso Outlook &lt;I style="mso-bidi-font-style: normal"&gt;Visible &lt;/I&gt;non esiste proprio. Poco male, perch&amp;#233; l&amp;#8217;applicativo pu&amp;#242;, indifferentemente, agire in background o allo scoperto, qualora fosse gi&amp;#224; aperto sulla nostra scrivania.&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Mi fermo qui suggerendo agl&amp;#8217;interessati altri esperimenti, in particolare un&amp;#8217;applicazione di circolari pi&amp;#249; o meno standard, nel qual caso un opportuno ciclo del tipo &lt;I style="mso-bidi-font-style: normal"&gt;For Each Nome In Indirizzario... Next &lt;/I&gt;sar&amp;#224; al centro del lavoretto o lavorone che ciascuno sapr&amp;#224; implementare.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOGHELPER&gt;
&lt;H1 style="MARGIN: 24pt 0cm 0pt"&gt;&lt;FONT color=#365f91 size=5 face=Cambria&gt;Ultim&amp;#8217;ora: un&amp;#8217;altra possibilit&amp;#224;, anzi due&lt;/FONT&gt;&lt;/H1&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Questa variante mi &amp;#232; venuta in mente nel metr&amp;#242; (giuro). Consiste nell&amp;#8217;uso della sintassi &lt;INDIRIZZO&gt;; &lt;INDIRIZZO&gt;; &lt;INDIRIZZO&gt;... della casella &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;A: &lt;/I&gt;&lt;/B&gt;(oppure &lt;I style="mso-bidi-font-style: normal"&gt;Cc: &lt;/I&gt;o &lt;I style="mso-bidi-font-style: normal"&gt;Ccn&lt;/I&gt;) che ha il vantaggio di&amp;nbsp;registrare in Outlook un&amp;#8217;unica missiva a pi&amp;#249; corrispondenti. Ed ecco la ricetta, che comprende due varianti. La prima consiste nel limitarsi al solo&lt;I style="mso-bidi-font-style: normal"&gt; &lt;/I&gt;argomento &lt;I style="mso-bidi-font-style: normal"&gt;IndirEmail &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/I&gt;della routine in questione:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;(questo perch&amp;#233; ora non &amp;#232; possibile specificare i singoli nominativi? ma pi&amp;#249; avanti vedremo che si pu&amp;#242;)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;La seconda variante &amp;#232; un suggerimento, ovvero usare il metodo &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Save&lt;/I&gt;&lt;/B&gt; in luogo di &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Send&lt;/I&gt;&lt;/B&gt;. In tal modo si rimanda l&amp;#8217;invio a tempi successivi, di tipo manuale ma con possibilit&amp;#224; di adattamenti e/o ri-usi. Ed ecco il risultato:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Calibri&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Sub MessHTML(IndirEmail As String)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;. . . idem c. s. . . .&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&amp;nbsp; With MioMess&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Subject = "Richiesta chiarimenti"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Bcc = "&lt;A href="mailto:pallinopinco@lib.it"&gt;pallinopinco@lib.it&lt;/A&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .To = IndirEmail&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .HTMLBody = Corpo&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Save&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp; End With&lt;BR&gt;&amp;nbsp; Set MioMess = Nothing&lt;BR&gt;&amp;nbsp; Set Outlk = Nothing&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Ci&amp;#242; premesso, ecco una possibile macro:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Sub Circolare()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim Indirizzi As String, PrimaCellaIndir As Range, i As Integer&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Set PrimaCellaIndir = Range("PrimaCellaIndir")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Indirizzi = PrimaCellaIndir.Value&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;i = 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;While PrimaCellaIndir(i).Value &amp;lt;&amp;gt; ""&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Indirizzi = Indirizzi &amp;amp; ";" &amp;amp; PrimaCellaIndir(i)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;i = i + 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Wend&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;MsgBox Indirizzi &lt;SPAN style="COLOR: #00b050"&gt;' Da usare solo in fase di debug&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;MessHTML Indirizzi&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Ritengo che la ricetta parli da sola, dico solo che &amp;#8220;PrimaCellaIndir&amp;#8221; &amp;#232; il nome affibbiato alla prima cella dell&amp;#8217;indirizzario, che sar&amp;#224; un campo in Colonna B o altrove.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Calibri&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;E la seconda possibilit&amp;#224; appena preannunciata? Dapprima non ci avevo pensato, ma &amp;#232; semplice. Consiste nell&amp;#8217;utilizzare &lt;U&gt;entrambi&lt;/U&gt; gli argomenti dell&amp;#8217;iniziale routine MessHTML, passandole come secondo argomento una stringa di nominativi concatenati, &lt;U&gt;tutti terminanti con &lt;I style="mso-bidi-font-style: normal"&gt;&lt;BR&gt;&lt;/I&gt;&lt;/U&gt;. Bando alle chiacchiere, fornisco la soluzione completa, che parte da una tabella Nomi/indirizzi come gi&amp;#224; vista:&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;
&lt;TABLE style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: auto auto auto 3.5pt; WIDTH: 265.1pt; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 3.5pt 0cm 3.5pt; mso-yfti-tbllook: 1184; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" class=MsoNormalTable border=1 cellSpacing=0 cellPadding=0 width=353&gt;
&lt;TBODY&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 134.8pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" vAlign=bottom width=180 noWrap&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;A name=RANGE!A1&gt;&lt;SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"&gt;Mario Zaccariai&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 130.3pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=bottom width=174 noWrap&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;U&gt;&lt;SPAN style="COLOR: blue; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"&gt;&lt;A href="mailto:mario.zaccaria@gmail.com"&gt;mario.zaccaria@gmail.com&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 1"&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 134.8pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=180 noWrap&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"&gt;Arturo Benedetti&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 130.3pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=174 noWrap&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;U&gt;&lt;SPAN style="COLOR: blue; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"&gt;&lt;A href="mailto:arturbened@libero.it"&gt;arturbened@libero.it&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 2"&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 134.8pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=180 noWrap&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"&gt;TreDenari Paolina&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 130.3pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=174 noWrap&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;U&gt;&lt;SPAN style="COLOR: blue; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"&gt;&lt;A href="mailto:treden@info.com"&gt;treden@info.com&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="HEIGHT: 15pt; mso-yfti-irow: 3; mso-yfti-lastrow: yes"&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 134.8pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=180 noWrap&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"&gt;Rossi Michele&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 130.3pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=174 noWrap&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;U&gt;&lt;SPAN style="COLOR: blue; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"&gt;&lt;A href="mailto:rossi.michele@boh.eu"&gt;rossi.michele@boh.eu&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;La routine, ripetuta per comodit&amp;#224; del lettore &lt;/B&gt;(ma la parte evidenziata &amp;#232; l&amp;#8217;unica modifica)&lt;B style="mso-bidi-font-weight: normal"&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Sub MessHTML(Cliente, IndirEmail As String)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim Corpo As String&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim Outlk As New Outlook.Application&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim MioMess As Outlook.MailItem&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Set MioMess = Outlk.CreateItem(olMailItem)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;Corpo = " 
&lt;P&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&lt;IMG border=0 src="http://www.elicasrl.eu/loghi/logo_Elica.bmp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&lt;IMG border=0 src="http://www.elicasrl.eu/loghi/logo_Crif.bmp"&gt;&lt;/P&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;P&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; " 
&lt;P&gt;&lt;FONT size=4 face=Tahoma&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;Gentilissimi " &amp;amp; "&lt;BR&gt;" &amp;amp; Cliente&lt;/SPAN&gt; &amp;amp; "&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "la presente per richiederLe quanto segue: &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&lt;BR&gt;&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "RingraziandoLa anticipatamente, Le porgiamo distinti saluti.&lt;BR&gt;&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;nbsp; &amp;nbsp; &amp;nbsp; Elica srl&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&amp;nbsp; Rossi Asdrubale &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "-------------------------------------------------------------------------&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "TRAFFICI VARI srl&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "Via Sette bellezze n. 123&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "00123 Roma (RM)&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "e-mail: settebell@gmail.it&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "Tel. ******&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "Fax&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;******&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "web: www.settebell.com&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; "&lt;/FONT&gt;&lt;/P&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt; 
&lt;P&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Corpo = Corpo &amp;amp; ""&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;With MioMess&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.Subject = "Richiesta chiarimenti"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.Bcc = "&lt;st1:PersonName w:st="on"&gt;giannigiac@tin.it&lt;/st1:PersonName&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.To = IndirEmail&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;.HTMLBody = Corpo&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;MioMess.Save&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;End With&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;' MioMess.Send ' Alternativa possibile&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Set MioMess = Nothing&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;Set Outlk = Nothing&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;La macro connessa a un opportuno pulsante &lt;I style="mso-bidi-font-style: normal"&gt;Activex&lt;/I&gt;&lt;/B&gt;:&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Private Sub CommandButton1_Click()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim ZonaNomi As Range, Iniz As Range&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Set Iniz = Range("InizNomi")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;With Iniz&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Set ZonaNomi = Range(.Cells(1), .End(xlDown))&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;End With&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim Nomi As String, Indirizzi As String, i As Integer&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;Nomi = Iniz.Value &amp;amp; "&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Indirizzi = Iniz.Offset(0, 1).Value&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND: yellow; mso-highlight: yellow"&gt;For i = 2 To ZonaNomi.Count&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-highlight: yellow"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Nomi = Nomi &amp;amp; ZonaNomi(i).Value &amp;amp; "&lt;BR&gt;"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-highlight: yellow"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Indirizzi = Indirizzi &amp;amp; ";" &amp;amp; ZonaNomi(i).Offset(0, 1).Value&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-highlight: yellow"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Next&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;MessHTML Cliente:=Nomi, IndirEmail:=Indirizzi&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;Meditate il ciclo in giallo, gente e vedrete che funziona.&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOGHELPER&gt;?&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;/P&gt;&lt;/BLOGHELPER&gt;?&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;/P&gt;&lt;/BLOGHELPER&gt;?&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;/P&gt;&lt;/bloghelper&gt;?&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src ="http://blog.shareoffice.it/giannigiaccaglini/aggbug/11076.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><h1 style="MARGIN: 24pt 0cm 0pt"><font color="#365f91" size="5" face="Cambria">Spedire circolari Outlook da indirizzari Excel</font></h1>
<p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri"><?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:PersonName ProductID="La tecnologia OLE Automation" w:st="on"><st1:PersonName ProductID="La tecnologia OLE" w:st="on">La tecnologia <B style="mso-bidi-font-weight: normal">OLE</B></st1:PersonName><B style="mso-bidi-font-weight: normal"> Automation</B></st1:PersonName><B style="mso-bidi-font-weight: normal"> </B>, detta anche sinteticamente <STRONG>Automation</STRONG>, permette proficui dialoghi fra applicativi. Si tratta di un sistema Client/Server dove il primo (Client) richiama la libreria del secondo (Server) utilizzandone propriet&#224; e metodi.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Il codice macro che propongo deriva da una soluzione pi&#249; completa dovuta a un mio corrispondente conosciuto tramite ShareOffice. Trattasi &#8211; onore al merito! &#8211; di <B style="mso-bidi-font-weight: normal">Ettore Caliendo</B> che tra l&#8217;altro sfrutta una caratteristica non a tutti ben nota: il <B style="mso-bidi-font-weight: normal">formato HTML</B> per il messaggio Outlook. Di conseguenza si pu&#242; inglobare nel messaggio un&#8217;immagine, il logo della ditta nella fattispecie, mediante il tag <B style="mso-bidi-font-weight: normal"><IMG...></B>(evidenziato in giallo, insieme ad altre particolarit&#224;, nella macro qui sotto riportata).</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Il predetto Ettore all&#8217;inizio mi aveva palesato una perplessit&#224;, dovuta al fatto che tale logo non perveniva ai suoi corrispondenti. Per non sapere n&#233; leggere n&#233; scrivere (in tema di messaggi Outlook in formato HTML, lo confesso...)<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>tuttavia gli ho subito detto: dovresti inserirla su un sito web, <U>altrimenti come potrebbero gli estranei vedere la figura che risiede sul TUO PC</U>?.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Compresa l&#8217;antifona, il rimedio &#232; stato provato e andato in porto, con reciproca soddisfazione. Ed ecco, a beneficio delle masse,&nbsp;una Sub mutuata dal sullodato Ettore e un po' semplificata che va incorporata in un opportuno archivio Excel, tipo <STRONG>MessOutlook.xls</STRONG><FONT face=Calibri></FONT>,<STRONG> </STRONG>o <B style="mso-bidi-font-weight: normal">MessOutlook.xlsm</B> con Office 2010.&nbsp;Ho pensato di&nbsp;corredarla di due argomenti, il <I style="mso-bidi-font-style: normal">Cliente </I>e l&#8217;<I style="mso-bidi-font-style: normal">IndirEmail </I>di chiara semantica:</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p>------------------</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p></o:p></SPAN>&nbsp;</P><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Sub MessHTML(Cliente As String, IndirEmail As String)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">Dim Corpo As String<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">Dim Outlk As New Outlook.Application</SPAN></B> <B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: #00b050">' Early binding<o:p></o:p></SPAN></B></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim MioMess As Outlook.MailItem<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">Set MioMess = Outlk.CreateItem(olMailItem</SPAN>)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">Corpo = "&lt;html&gt;&lt;body&gt;&lt;p&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; <SPAN style="BACKGROUND: yellow">"<B style="mso-bidi-font-weight: normal">&lt;img border='0'<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>src='http://www.elicasrl.eu/loghi/logo_Elica.bmp'&gt;</B></SPAN>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&lt;img border='0' src='http://www.elicasrl.eu/loghi/logo_Crif.bmp' &gt;&lt;/p&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&lt;p&gt;&lt;font face='Tahoma' size='4'&gt;<B style="mso-bidi-font-weight: normal"><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">Gentilissimo/a </SPAN></B><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">" <B style="mso-bidi-font-weight: normal">&amp; Cliente</B></SPAN><B style="mso-bidi-font-weight: normal"> </B>&amp; ",&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "la presente per richiederLe quanto segue: &lt;br&gt;&lt;br&gt;&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&lt;br&gt;&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "RingraziandoLa anticipatamente, Le porgiamo distinti saluti.&lt;br&gt;&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&amp;nbsp; &amp;nbsp; &amp;nbsp; Elica srl&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&amp;nbsp; Rossi Asdrubale &lt;br&gt;&lt;br&gt;&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "-------------------------------------------------------------------------&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "TRAFFICI VARI srl&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "Via Sette bellezze n. 103&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "00123 Roma (RM)&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "e-mail: settebell@gmail.it&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "Tel. ******&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "Fax<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>******&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "web: www.settebell.com&lt;br&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&lt;/font&gt;&lt;/p&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&lt;/body&gt;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt; mso-highlight: yellow" lang=EN-US>With MioMess</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><o:p></o:p></SPAN></B></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">.Subject = "Richiesta chiarimenti"</SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">.Bcc = "pallino.pinco@lib.it"</SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">.To = IndirEmail</SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">.HTMLBody = Corpo</SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">End With</SPAN><o:p></o:p></B></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>MioMess.Send <SPAN style="COLOR: #00b050">' Invia il messaggio<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>' Libera le variabili &#8220;pesanti&#8221;:<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Set MioMess = Nothing<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Set Outlk = Nothing<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">End Sub<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal></o:p></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p>------------------&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>A ignari &amp; immemori comincio col ricordare che per funzionare Automation chiede che nell'Editor VBA si fissino i riferimenti opportuni, mediante il comando <B style="mso-bidi-font-weight: normal">Strumenti &gt; Riferimenti... </B>scegliendo poi <I style="mso-bidi-font-style: normal">Microsoft Outlook 12 Object Library </I>nel nostro caso (diventa <I style="mso-bidi-font-style: normal">Outlook 14</I> con Office 2010).</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Qui vale la pena di fare un paio di osservazioni. La prima &#232; l&#8217;utilizzo della sintassi <I style="mso-bidi-font-style: normal">As New Outlook.Application, </I>che al pregio della sinteticit&#224; unisce quello di fornire il cosiddetto <I style="mso-bidi-font-style: normal">Early Binding </I>(associazione immediata) contrapposto al <I style="mso-bidi-font-style: normal">Late Binding </I>(associazione tardiva) offerto invece dalla classica istruzione<B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"> </I></B>utilizzata dal nostro amico:</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"><FONT face=Calibri>Outlk = CreateObject(&#8220;Outlook.Application&#8221;)<o:p></o:p></FONT></I></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Nel qual caso la variabile &#232; del tipo generale <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">Object</I></B>, con due conseguenze: <SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ansi-language: IT; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-bidi-font-family: 'Times New Roman'; mso-bidi-language: AR-SA">maggior lentezza e segnalazione di errori solo a run-time,&nbsp;unita alla mancanza dell&#8217;intellisense.</SPAN> Infatti solo con l&#8217;early binding accanto al punto (.) della variabile<I style="mso-bidi-font-style: normal"> Outlk </I>spuntano, comodamente, cose come <I style="mso-bidi-font-style: normal">.Subject </I>(l&#8217;oggetto del messaggio), <I style="mso-bidi-font-style: normal">.Bcc </I>(il corrispondente in &#8220;carbon copy&#8221;, che pu&#242; convenire assumere come il proprio email, per un riscontro, ovviamente al posto del comico e fantomatico </FONT><A href="mailto:pallino.pinco@lib.it"><FONT face=Calibri>pallino.pinco@lib.it</FONT></A><FONT face=Calibri>!), <I style="mso-bidi-font-style: normal">.To IndirEmail </I>(l&#8217;email del destinatario) e <I style="mso-bidi-font-style: normal">.HTMLBody = Corpo </I>(il &#8220;corpo&#8221; del messaggio in formato HTML).</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>La seconda osservazione &#232; il fatto che il buon Ettore ha impostato i riferimenti non a <I style="mso-bidi-font-style: normal">Microsoft Outlook </I>bens&#236; a <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">Microsoft Office 12 </I></B>(o <I style="mso-bidi-font-style: normal">14 </I>nell&#8217;edizione 2010), con un certo mio stupore! A caldo penso che questa sia pi&#249; generale, ergo pi&#249; &#8220;pesante&#8221; di quella che userebbe il sottoscritto. Ma non ne sono sicuro.</FONT></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BACKGROUND: #daeef3; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-border-alt: solid windowtext .5pt; mso-element: para-border-div; mso-background-themecolor: accent5; mso-background-themetint: 51">
<P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #daeef3; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent5; mso-background-themetint: 51; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal><FONT face=Calibri><B style="mso-bidi-font-weight: normal">Nota</B>. Posso per&#242; testimoniare che, in un&#8217;altra circostanza &#8211; Automation di Word &#8211; <st1:PersonName ProductID="la libreria MS Office" w:st="on"><st1:PersonName ProductID="la libreria MS" w:st="on">la libreria MS</st1:PersonName> Office</st1:PersonName> NON presentava una certa propriet&#224;... Misteri dell&#8217;OLE Automation...</FONT></P></DIV>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Tornando al testo del messaggio, a parte la sua genericit&#224;, che&nbsp;travalica il pi&#249; squallido umorismo, esso dovrebbe essere chiaro a chiunque mastica il linguaggio HTML, faccio solo notare che con il concatenamento <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">Gentilissimo &amp; Cliente </I></B>si ottiene l&#8217;inserimento del nome del destinatario nel corpo del messaggio stesso.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>A questo punto, fatte le debite personalizzazioni, gl&#8217;interessati possono testare la predetta routine con un&#8217;istruzione del tipo seguente:</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>MessHTML "Michele Topo", <A href="mailto:topolino@disney.com">topolino@disney.com</A><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Pi&#249; vantaggiosamente si pu&#242; pensare a una serie di nominativi sul foglio Excel affiancati dai rispettivi indirizzi di posta elettronica:</FONT></P>
<TABLE style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184" class=MsoTableGrid border=1 cellSpacing=0 cellPadding=0>
<TBODY>
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 244.45pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" vAlign=top width=326>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class=MsoNormal><FONT face=Calibri>Matteo Evangelista</FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 244.45pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=top width=326>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><A href="mailto:matteoevang@gmail.com"><FONT face=Calibri>matteoevang@gmail.com</FONT></A></P></TD></TR>
<TR style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 244.45pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width=326>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Giovanni Telegrafista</FONT></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 244.45pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=top width=326>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><A href="mailto:giovantelegrafist@tin.it"><FONT face=Calibri>giovantelegrafist@tin.it</FONT></A></P></TD></TR></TBODY></TABLE>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 6pt" class=MsoNormal><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Eccetera.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Immaginando, per estrema semplicit&#224; che i due dati siano collocati nelle colonne A e B a partire da A1, si potrebbe ricorrere alla procedura dell&#8217;evento <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">BeforeDoubleClick</I></B>:</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If Target.Column &lt;&gt; 1 Or Target.Value = "" Then<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Cancel = True <SPAN style="COLOR: #00b050">' Annulla il minieditor della cella</SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Exit Sub<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>End If<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>MessHTML Target.Value, Target.Offset(0, 1).Value<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Cancel = True <SPAN style="COLOR: #00b050">' Annulla il minieditor della cella</SPAN><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">End Sub<o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Che sul doppio click in una cella non vuota in colonna A lancia il massaggio Outlook a quel dato soggetto.</FONT></P>
<DIV style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BACKGROUND: #daeef3; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt; mso-border-alt: solid windowtext .5pt; mso-element: para-border-div; mso-background-themecolor: accent5; mso-background-themetint: 51">
<P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 10pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #daeef3; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent5; mso-background-themetint: 51; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" class=MsoNormal><FONT face=Calibri><B style="mso-bidi-font-weight: normal">Nota </B>ultimissima. In altri mondo OLE Automation si ha <st1:PersonName ProductID="la propriet&#224; Visible" w:st="on">la propriet&#224; <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">Visible</I></B></st1:PersonName>, che va impostata a <I style="mso-bidi-font-style: normal">True </I>se si vuole che Excel o Word siano visualizzati, altrimenti agiscono nell&#8217;ombra.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Nel caso Outlook <I style="mso-bidi-font-style: normal">Visible </I>non esiste proprio. Poco male, perch&#233; l&#8217;applicativo pu&#242;, indifferentemente, agire in background o allo scoperto, qualora fosse gi&#224; aperto sulla nostra scrivania.</FONT></P></DIV>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Mi fermo qui suggerendo agl&#8217;interessati altri esperimenti, in particolare un&#8217;applicazione di circolari pi&#249; o meno standard, nel qual caso un opportuno ciclo del tipo <I style="mso-bidi-font-style: normal">For Each Nome In Indirizzario... Next </I>sar&#224; al centro del lavoretto o lavorone che ciascuno sapr&#224; implementare.</FONT></P></BLOGHELPER>
<H1 style="MARGIN: 24pt 0cm 0pt"><FONT color=#365f91 size=5 face=Cambria>Ultim&#8217;ora: un&#8217;altra possibilit&#224;, anzi due</FONT></H1>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Questa variante mi &#232; venuta in mente nel metr&#242; (giuro). Consiste nell&#8217;uso della sintassi <INDIRIZZO>; <INDIRIZZO>; <INDIRIZZO>... della casella <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">A: </I></B>(oppure <I style="mso-bidi-font-style: normal">Cc: </I>o <I style="mso-bidi-font-style: normal">Ccn</I>) che ha il vantaggio di&nbsp;registrare in Outlook un&#8217;unica missiva a pi&#249; corrispondenti. Ed ecco la ricetta, che comprende due varianti. La prima consiste nel limitarsi al solo<I style="mso-bidi-font-style: normal"> </I>argomento <I style="mso-bidi-font-style: normal">IndirEmail <SPAN style="mso-spacerun: yes">&nbsp;</SPAN></I>della routine in questione:</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>(questo perch&#233; ora non &#232; possibile specificare i singoli nominativi? ma pi&#249; avanti vedremo che si pu&#242;)</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>La seconda variante &#232; un suggerimento, ovvero usare il metodo <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">Save</I></B> in luogo di <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">Send</I></B>. In tal modo si rimanda l&#8217;invio a tempi successivi, di tipo manuale ma con possibilit&#224; di adattamenti e/o ri-usi. Ed ecco il risultato:</FONT></P><FONT face=Calibri>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Sub MessHTML(IndirEmail As String)<o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>. . . idem c. s. . . .</SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>&nbsp; With MioMess<BR>&nbsp;&nbsp;&nbsp; .Subject = "Richiesta chiarimenti"<BR>&nbsp;&nbsp;&nbsp; .Bcc = "<A href="mailto:pallinopinco@lib.it">pallinopinco@lib.it</A>"<BR>&nbsp;&nbsp;&nbsp; .To = IndirEmail<BR>&nbsp;&nbsp;&nbsp; .HTMLBody = Corpo<BR><STRONG>&nbsp;&nbsp;&nbsp; .Save<BR></STRONG>&nbsp; End With<BR>&nbsp; Set MioMess = Nothing<BR>&nbsp; Set Outlk = Nothing</SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>End Sub<o:p></o:p></SPAN></P></FONT>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Ci&#242; premesso, ecco una possibile macro:</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Sub Circolare()<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim Indirizzi As String, PrimaCellaIndir As Range, i As Integer<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Set PrimaCellaIndir = Range("PrimaCellaIndir")<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Indirizzi = PrimaCellaIndir.Value<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>i = 2<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>While PrimaCellaIndir(i).Value &lt;&gt; ""<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Indirizzi = Indirizzi &amp; ";" &amp; PrimaCellaIndir(i)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>i = i + 1<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Wend<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>MsgBox Indirizzi <SPAN style="COLOR: #00b050">' Da usare solo in fase di debug</SPAN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>MessHTML Indirizzi<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>End Sub<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Ritengo che la ricetta parli da sola, dico solo che &#8220;PrimaCellaIndir&#8221; &#232; il nome affibbiato alla prima cella dell&#8217;indirizzario, che sar&#224; un campo in Colonna B o altrove.</FONT></P><FONT face=Calibri>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal>E la seconda possibilit&#224; appena preannunciata? Dapprima non ci avevo pensato, ma &#232; semplice. Consiste nell&#8217;utilizzare <U>entrambi</U> gli argomenti dell&#8217;iniziale routine MessHTML, passandole come secondo argomento una stringa di nominativi concatenati, <U>tutti terminanti con <I style="mso-bidi-font-style: normal"><BR></I></U>. Bando alle chiacchiere, fornisco la soluzione completa, che parte da una tabella Nomi/indirizzi come gi&#224; vista:</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal>
<TABLE style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: auto auto auto 3.5pt; WIDTH: 265.1pt; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 3.5pt 0cm 3.5pt; mso-yfti-tbllook: 1184; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" class=MsoNormalTable border=1 cellSpacing=0 cellPadding=0 width=353>
<TBODY>
<TR style="HEIGHT: 15pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 134.8pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" vAlign=bottom width=180 noWrap>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><A name=RANGE!A1><SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT">Mario Zaccariai</SPAN></A><SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"><o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 130.3pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" vAlign=bottom width=174 noWrap>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><U><SPAN style="COLOR: blue; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"><A href="mailto:mario.zaccaria@gmail.com">mario.zaccaria@gmail.com</A><o:p></o:p></SPAN></U></P></TD></TR>
<TR style="HEIGHT: 15pt; mso-yfti-irow: 1">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 134.8pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=180 noWrap>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT">Arturo Benedetti<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 130.3pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=174 noWrap>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><U><SPAN style="COLOR: blue; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"><A href="mailto:arturbened@libero.it">arturbened@libero.it</A><o:p></o:p></SPAN></U></P></TD></TR>
<TR style="HEIGHT: 15pt; mso-yfti-irow: 2">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 134.8pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=180 noWrap>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT">TreDenari Paolina<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 130.3pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=174 noWrap>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><U><SPAN style="COLOR: blue; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"><A href="mailto:treden@info.com">treden@info.com</A><o:p></o:p></SPAN></U></P></TD></TR>
<TR style="HEIGHT: 15pt; mso-yfti-irow: 3; mso-yfti-lastrow: yes">
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 134.8pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=180 noWrap>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="COLOR: black; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT">Rossi Michele<o:p></o:p></SPAN></P></TD>
<TD style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 3.5pt; WIDTH: 130.3pt; PADDING-RIGHT: 3.5pt; HEIGHT: 15pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" vAlign=bottom width=174 noWrap>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><U><SPAN style="COLOR: blue; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: IT"><A href="mailto:rossi.michele@boh.eu">rossi.michele@boh.eu</A><o:p></o:p></SPAN></U></P></TD></TR></TBODY></TABLE></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><o:p>&nbsp;</o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal">La routine, ripetuta per comodit&#224; del lettore </B>(ma la parte evidenziata &#232; l&#8217;unica modifica)<B style="mso-bidi-font-weight: normal">:<o:p></o:p></B></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Sub MessHTML(Cliente, IndirEmail As String)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim Corpo As String<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim Outlk As New Outlook.Application<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim MioMess As Outlook.MailItem<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Set MioMess = Outlk.CreateItem(olMailItem)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">Corpo = " 
<P>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "<IMG border=0 src="http://www.elicasrl.eu/loghi/logo_Elica.bmp">&nbsp;&nbsp;&nbsp;&nbsp;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "<IMG border=0 src="http://www.elicasrl.eu/loghi/logo_Crif.bmp"></P>"<o:p></o:p></SPAN> 
<P></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; " 
<P><FONT size=4 face=Tahoma><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">Gentilissimi " &amp; "<BR>" &amp; Cliente</SPAN> &amp; "<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "la presente per richiederLe quanto segue: <BR><BR><BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "<BR><BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "RingraziandoLa anticipatamente, Le porgiamo distinti saluti.<BR><BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&nbsp; &nbsp; &nbsp; Elica srl<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "&nbsp; Rossi Asdrubale <BR><BR><BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "-------------------------------------------------------------------------<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "TRAFFICI VARI srl<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "Via Sette bellezze n. 123<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "00123 Roma (RM)<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "e-mail: settebell@gmail.it<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "Tel. ******<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "Fax<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>******<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "web: www.settebell.com<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; "</FONT></P>"<o:p></o:p></SPAN> 
<P></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Corpo = Corpo &amp; ""<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>With MioMess<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>.Subject = "Richiesta chiarimenti"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>.Bcc = "<st1:PersonName w:st="on">giannigiac@tin.it</st1:PersonName>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>.To = IndirEmail<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>.HTMLBody = Corpo<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>MioMess.Save<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>End With<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>' MioMess.Send ' Alternativa possibile<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Set MioMess = Nothing<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">Set Outlk = Nothing<o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">End Sub<o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal">La macro connessa a un opportuno pulsante <I style="mso-bidi-font-style: normal">Activex</I></B>:</P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Private Sub CommandButton1_Click()<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim ZonaNomi As Range, Iniz As Range<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Set Iniz = Range("InizNomi")<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>With Iniz<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Set ZonaNomi = Range(.Cells(1), .End(xlDown))<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>End With<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim Nomi As String, Indirizzi As String, i As Integer<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">Nomi = Iniz.Value &amp; "<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Indirizzi = Iniz.Offset(0, 1).Value<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="BACKGROUND: yellow; mso-highlight: yellow">For i = 2 To ZonaNomi.Count<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-highlight: yellow"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Nomi = Nomi &amp; ZonaNomi(i).Value &amp; "<BR>"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-highlight: yellow"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>Indirizzi = Indirizzi &amp; ";" &amp; ZonaNomi(i).Offset(0, 1).Value<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt; mso-highlight: yellow"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Next</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>MessHTML Cliente:=Nomi, IndirEmail:=Indirizzi<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">End Sub<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal>Meditate il ciclo in giallo, gente e vedrete che funziona.</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal></FONT>&nbsp;</P></FONT>
<P></P></BLOGHELPER>?&gt;</FONT> 
<P></P></BLOGHELPER>?&gt;</FONT> 
<P></P></BLOGHELPER>?&gt;</FONT> 
<P></P></bloghelper>?></font></p><img src ="http://blog.shareoffice.it/giannigiaccaglini/aggbug/11076.aspx" width = "1" height = "1" /></body></item><item><dc:creator>Gianni Giaccaglini</dc:creator><title>Finestra del tipo InputBox personalizzata (o, quantomeno, emulata)</title><link>http://blog.shareoffice.it/giannigiaccaglini/archive/2011/01/25/10772.aspx</link><pubDate>Tue, 25 Jan 2011 14:35:00 GMT</pubDate><guid>http://blog.shareoffice.it/giannigiaccaglini/archive/2011/01/25/10772.aspx</guid><wfw:comment>http://blog.shareoffice.it/giannigiaccaglini/comments/10772.aspx</wfw:comment><comments>http://blog.shareoffice.it/giannigiaccaglini/archive/2011/01/25/10772.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.shareoffice.it/giannigiaccaglini/comments/commentRss/10772.aspx</wfw:commentRss><trackback:ping>http://blog.shareoffice.it/giannigiaccaglini/services/trackbacks/10772.aspx</trackback:ping><description>&lt;h1 style="MARGIN: 24pt 0cm 0pt"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Finestra del tipo &lt;i style="mso-bidi-font-style: normal"&gt;InputBox&lt;/i&gt; personalizzata&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:PersonName ProductID="La funzione VB InputBox" w:st="on"&gt;&lt;st1:PersonName ProductID="La funzione VB" w:st="on"&gt;La funzione VB&lt;/st1:PersonName&gt; &lt;I style="mso-bidi-font-style: normal"&gt;InputBox&lt;/I&gt;&lt;/st1:PersonName&gt;&lt;I style="mso-bidi-font-style: normal"&gt; &lt;/I&gt;con la quale viene chiesto all&amp;#8217;utente di immettere un certo dato &amp;#232; semplice e comoda. Ne ricordo la sintassi e i due principali argomenti, il secondo default &amp;#8211; &lt;I style="mso-bidi-font-style: normal"&gt;InputBox(Prompt, [Title]... ) &lt;/I&gt;&amp;#8211;&lt;I style="mso-bidi-font-style: normal"&gt; &lt;/I&gt;e ne fornisco un esempio limite:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;If InputBox("2 + 2? ") &amp;lt;&amp;gt; "4" then&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;MsgBox (&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Asino!&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt" lang=EN-US&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;End If&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Tempo fa mi fu ricordato che InputBox &amp;#232; una da tempo una funzione obsoleta nelle edizioni Visual Basic successive rispetto a VB 6, per cui occorre arrangiarsi con Form personali. Ora VBA, il nostro sistema di macro, &amp;#232; fermo all&amp;#8217;edizione 6 pertanto nessun timore. Tuttavia bench&amp;#233; io usi poco le UserForm tale notizia mi ha stimolato l&amp;#8217;idea di creare una sorta di InputBox personalizzabile, pi&amp;#249; o meno.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Ed ecco cosa ho escogitato. Anzitutto ho creato una semplice &lt;B style="mso-bidi-font-weight: normal"&gt;UserForm1&lt;/B&gt; caratterizzata da una sola casella di testo &lt;STRONG&gt;&lt;EM&gt;TextBox, &lt;/EM&gt;&lt;/STRONG&gt;un&amp;#8217;ampia &lt;I style="mso-bidi-font-style: normal"&gt;Label &lt;/I&gt;di nome &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Prompt&lt;/I&gt;&lt;/B&gt; anzich&amp;#233; il generico &lt;I style="mso-bidi-font-style: normal"&gt;Label1 &lt;/I&gt;pi&amp;#249; un pulsante denominato &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;OK&lt;/I&gt;&lt;/B&gt; in luogo del solito &lt;I style="mso-bidi-font-style: normal"&gt;CommandButton1&lt;/I&gt;, assegnando il codice seguente al suo evento Click, avente il palese scopo di occultare e scaricare la UserForm1:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Private Sub OK_Click()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Me.Hide&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unload Me&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Successivamente ho fatto una prima prova con la macro seguente:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Sub InputBoxByUserForm()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim MiaUserForm As New UserForm1&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Load MiaUserForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;MiaUserForm.Show&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim Dimmi As String&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;Dimmi = MiaUserForm.TextBox.Value&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;' MiaUserForm.Hide 'd&amp;#224; ERRORE,comunque non sembra che serva&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unload MiaUserForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;MsgBox Dimmi&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Ne affido il debug, meglio se con &lt;B style="mso-bidi-font-weight: normal"&gt;F8 &lt;/B&gt;(passo-passo), al lettore, facendo solo notare che con &lt;I style="mso-bidi-font-style: normal"&gt;Dim MiaUserForm As New UserForm1 &lt;/I&gt;ho sfruttato un&amp;#8217;&lt;U&gt;istanza&lt;/U&gt; della &lt;I style="mso-bidi-font-style: normal"&gt;UserForm1&lt;/I&gt; che cos&amp;#236; diventa una specie di modello per altri utilizzi.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Per&amp;#242; non siamo ancora alla piena emulazione della &lt;B style="mso-bidi-font-weight: normal"&gt;InputBox &lt;/B&gt;che, conviene ricordarlo, &amp;#232; una &lt;U&gt;funzione&lt;/U&gt;. Fu un detto e un fatto e quella sera stessa (*) ecco la soluzione che ho infine implementato:&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Function MiaInputBox(Prompt As String, Titolo As String) As String&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Dim InputTxt As String&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Dim MiaUserForm As New UserForm1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;With MiaUserForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;.Caption = Titolo&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;.Prompt = Prompt&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;End With&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Load MiaUserForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;MiaUserForm.Show&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;InputTxt = MiaUserForm.TextBox.Value&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Unload MiaUserForm&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;MiaInputBox = InputTxt&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;End Function&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Spero sia chiaro a tutti come e perch&amp;#233; MiaInputBox emula nei tratti essenziali la InputBox standard (gli altri? La prendano come ricetta, se piace).&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Ed ecco infine un possibile macro che la sfrutta (le 2 istruzioni tradotte in commenti sono varianti):&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;Sub InputBoxConUserForm()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dim Dimmi As String&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;' Dimmi = MiaInputBox&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;' MsgBox Dimmi&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If MiaInputBox("2 + 2?", "Indovinalagrillo") = "4" Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;MsgBox "Giusto!"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;End If&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;End Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Ma a parte gli aspetti istruttivi e curiosi era proprio necessario tutto ci&amp;#242;? Beh, forse no, &lt;U&gt;ma non andrebbe dimenticata la possibilit&amp;#224; di abbellire la UserForm1&lt;/U&gt; per far bella figura con amici e/o clienti, ad esempio inserendo un&amp;#8217;immagine.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Nota (*) Citazione di squallido umorismo dalla poesia &lt;B style="mso-bidi-font-weight: normal"&gt;Er Porco &lt;/B&gt;di Trilussa (il verso ripreso &amp;#232; il penultimo)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;Un vecchio Porco disse a certe Vacche:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;La vojo fa&amp;#8217; finita&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;de fa&amp;#8217; &amp;#8216;sta porca vita.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;Me vojo mette er fracche,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;le scarpe co&amp;#8217; lo scrocchio,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;un fiore, un vetro all&amp;#8217;occhio,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;e annammene in citt&amp;#224;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;indove c&amp;#8217;&amp;#232; la gente pi&amp;#249; pulita,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;che bazzica la bona societ&amp;#224;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;Fu un detto e un fatto, e quela sera istessa&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;Agnede a pij&amp;#224; er t&amp;#232; da na contessa&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;. . .&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;ecc. ecc. . . .&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Il seguito lo trovate con Google, sulla chiave &amp;#8220;Trilussa&amp;#8221;. Buona lettura (spesso sono cose tuttora attuali).&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOGHELPER&gt;?&amp;gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;&lt;/bloghelper&gt;?&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src ="http://blog.shareoffice.it/giannigiaccaglini/aggbug/10772.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><h1 style="MARGIN: 24pt 0cm 0pt"><font color="#365f91" size="5" face="Cambria">Finestra del tipo <i style="mso-bidi-font-style: normal">InputBox</i> personalizzata</font></h1>
<p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri"><?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:PersonName ProductID="La funzione VB InputBox" w:st="on"><st1:PersonName ProductID="La funzione VB" w:st="on">La funzione VB</st1:PersonName> <I style="mso-bidi-font-style: normal">InputBox</I></st1:PersonName><I style="mso-bidi-font-style: normal"> </I>con la quale viene chiesto all&#8217;utente di immettere un certo dato &#232; semplice e comoda. Ne ricordo la sintassi e i due principali argomenti, il secondo default &#8211; <I style="mso-bidi-font-style: normal">InputBox(Prompt, [Title]... ) </I>&#8211;<I style="mso-bidi-font-style: normal"> </I>e ne fornisco un esempio limite:</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>If InputBox("2 + 2? ") &lt;&gt; "4" then<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>MsgBox (</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">"</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Asino!</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt" lang=EN-US> </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">"</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>End If<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Tempo fa mi fu ricordato che InputBox &#232; una da tempo una funzione obsoleta nelle edizioni Visual Basic successive rispetto a VB 6, per cui occorre arrangiarsi con Form personali. Ora VBA, il nostro sistema di macro, &#232; fermo all&#8217;edizione 6 pertanto nessun timore. Tuttavia bench&#233; io usi poco le UserForm tale notizia mi ha stimolato l&#8217;idea di creare una sorta di InputBox personalizzabile, pi&#249; o meno.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Ed ecco cosa ho escogitato. Anzitutto ho creato una semplice <B style="mso-bidi-font-weight: normal">UserForm1</B> caratterizzata da una sola casella di testo <STRONG><EM>TextBox, </EM></STRONG>un&#8217;ampia <I style="mso-bidi-font-style: normal">Label </I>di nome <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">Prompt</I></B> anzich&#233; il generico <I style="mso-bidi-font-style: normal">Label1 </I>pi&#249; un pulsante denominato <B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">OK</I></B> in luogo del solito <I style="mso-bidi-font-style: normal">CommandButton1</I>, assegnando il codice seguente al suo evento Click, avente il palese scopo di occultare e scaricare la UserForm1:</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Private Sub OK_Click()<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Me.Hide<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Unload Me<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>End Sub<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Successivamente ho fatto una prima prova con la macro seguente:</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Sub InputBoxByUserForm()<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim MiaUserForm As New UserForm1<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Load MiaUserForm<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>MiaUserForm.Show<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim Dimmi As String<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">Dimmi = MiaUserForm.TextBox.Value<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>' MiaUserForm.Hide 'd&#224; ERRORE,comunque non sembra che serva<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Unload MiaUserForm<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>MsgBox Dimmi<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">End Sub<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Ne affido il debug, meglio se con <B style="mso-bidi-font-weight: normal">F8 </B>(passo-passo), al lettore, facendo solo notare che con <I style="mso-bidi-font-style: normal">Dim MiaUserForm As New UserForm1 </I>ho sfruttato un&#8217;<U>istanza</U> della <I style="mso-bidi-font-style: normal">UserForm1</I> che cos&#236; diventa una specie di modello per altri utilizzi.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Per&#242; non siamo ancora alla piena emulazione della <B style="mso-bidi-font-weight: normal">InputBox </B>che, conviene ricordarlo, &#232; una <U>funzione</U>. Fu un detto e un fatto e quella sera stessa (*) ecco la soluzione che ho infine implementato:</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>Function MiaInputBox(Prompt As String, Titolo As String) As String<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>Dim InputTxt As String<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>Dim MiaUserForm As New UserForm1<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>With MiaUserForm<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>.Caption = Titolo<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>.Prompt = Prompt<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>End With<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>Load MiaUserForm<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>MiaUserForm.Show<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>InputTxt = MiaUserForm.TextBox.Value<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>Unload MiaUserForm<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>MiaInputBox = InputTxt<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>End Function<o:p></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Spero sia chiaro a tutti come e perch&#233; MiaInputBox emula nei tratti essenziali la InputBox standard (gli altri? La prendano come ricetta, se piace).</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Ed ecco infine un possibile macro che la sfrutta (le 2 istruzioni tradotte in commenti sono varianti):</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US>Sub InputBoxConUserForm()<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Dim Dimmi As String<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>' Dimmi = MiaInputBox<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #00b050; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>' MsgBox Dimmi<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If MiaInputBox("2 + 2?", "Indovinalagrillo") = "4" Then<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>MsgBox "Giusto!"<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt" lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">End If<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt">End Sub<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-bidi-font-size: 11.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Ma a parte gli aspetti istruttivi e curiosi era proprio necessario tutto ci&#242;? Beh, forse no, <U>ma non andrebbe dimenticata la possibilit&#224; di abbellire la UserForm1</U> per far bella figura con amici e/o clienti, ad esempio inserendo un&#8217;immagine.</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><FONT face=Calibri>Nota (*) Citazione di squallido umorismo dalla poesia <B style="mso-bidi-font-weight: normal">Er Porco </B>di Trilussa (il verso ripreso &#232; il penultimo)</FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">Un vecchio Porco disse a certe Vacche:<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">La vojo fa&#8217; finita<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">de fa&#8217; &#8216;sta porca vita.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">Me vojo mette er fracche,<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">le scarpe co&#8217; lo scrocchio,<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">un fiore, un vetro all&#8217;occhio,<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">e annammene in citt&#224;,<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">indove c&#8217;&#232; la gente pi&#249; pulita,<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">che bazzica la bona societ&#224;.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">Fu un detto e un fatto, e quela sera istessa<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">Agnede a pij&#224; er t&#232; da na contessa<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt">. . .<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>ecc. ecc. . . .<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal><FONT face=Calibri>Il seguito lo trovate con Google, sulla chiave &#8220;Trilussa&#8221;. Buona lettura (spesso sono cose tuttora attuali).</FONT></P></BLOGHELPER>?&gt;</FONT>
<P></P></bloghelper>?></font></p><img src ="http://blog.shareoffice.it/giannigiaccaglini/aggbug/10772.aspx" width = "1" height = "1" /></body></item><item><dc:creator>Gianni Giaccaglini</dc:creator><title>Azure In Action, un utile libro spiega come usare Azure, la nuova piattaforma Cloud di Microsoft</title><link>http://blog.shareoffice.it/giannigiaccaglini/archive/2010/12/03/10725.aspx</link><pubDate>Fri, 03 Dec 2010 11:05:00 GMT</pubDate><guid>http://blog.shareoffice.it/giannigiaccaglini/archive/2010/12/03/10725.aspx</guid><wfw:comment>http://blog.shareoffice.it/giannigiaccaglini/comments/10725.aspx</wfw:comment><comments>http://blog.shareoffice.it/giannigiaccaglini/archive/2010/12/03/10725.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.shareoffice.it/giannigiaccaglini/comments/commentRss/10725.aspx</wfw:commentRss><trackback:ping>http://blog.shareoffice.it/giannigiaccaglini/services/trackbacks/10725.aspx</trackback:ping><description>&lt;h1 style="MARGIN: 24pt 0cm 0pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 18pt; mso-bidi-font-size: 14.0pt"&gt;&lt;font color="#365f91" size="3" face="Cambria"&gt;&lt;em&gt;V. l'ultimo post &lt;/em&gt;QUADRATO MAGICO: &lt;a href="http://blog.shareoffice.it/giannigiaccaglini/archive/2010/12/13/10732.aspx"&gt;http://blog.shareoffice.it/giannigiaccaglini/archive/2010/12/13/10732.aspx&lt;/a&gt; &lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;h1 style="MARGIN: 24pt 0cm 0pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 18pt; mso-bidi-font-size: 14.0pt"&gt;&lt;/span&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 18pt; mso-bidi-font-size: 14.0pt"&gt;&lt;font color="#365f91" face="Cambria"&gt;Azure in Action&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;:&lt;br /&gt;fucina cloud di Microsoft spiegata a fondo&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;L’editore &lt;b style="mso-bidi-font-weight: normal"&gt;Manning&lt;/b&gt; è&lt;b style="mso-bidi-font-weight: normal"&gt; &lt;/b&gt;tra i primi a proporre questo titolo molto attuale, dedicato alla proposta Microsoft per il cloud computing su cui il gigante di Redmond ha fortemente scommesso e investito. &lt;img src="http://www.giannigiaccaglini.it/download/AzureInAction.jpg" target="_blank" /&gt; I testi Manning, dalla copertina ispirata a quadri e litografie pittoreschi, in genere si distinguono per chiarezza espositiva e profondità che va oltre i primi passi, consentendo così al lettore di proseguire bene con le proprie forze.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;Questo manuale, scritto da &lt;b style="mso-bidi-font-weight: normal"&gt;Chris Hay&lt;/b&gt; e &lt;b style="mso-bidi-font-weight: normal"&gt;Brian H. Prince&lt;/b&gt; anche tramite contatti con gli autori Microsoft&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;di Azure, esordisce mettendo subito in evidenza la duplice natura di questo complesso ambiente:&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 55.5pt; mso-add-space: auto; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;è un autentico &lt;b style="mso-bidi-font-weight: normal"&gt;sistema operative per il cloud&lt;/b&gt; offerto da Microsoft in prima persona, che metta a disposizione degli utenti una quantità impressionante di risorse hardware e software dislocate nel pianeta (due negli Usa, due in Europa, altre in&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Asia) in modo dal tutto trasparente;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 55.5pt; mso-add-space: auto; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpLast"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;si compone di un insieme di &lt;b style="mso-bidi-font-weight: normal"&gt;tool e API per sviluppare applicazioni sul cloud&lt;/b&gt; in ambiente Visual Studio 2010 o 2008 principalmente coi linguaggi Visual Basic o, a scelta, C#.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;Fra le API citiamo solo &lt;b style="mso-bidi-font-weight: normal"&gt;WCF&lt;/b&gt; (Windows Communication Foundation) per implementare servizi di comunicazione per il cloud, &lt;b style="mso-bidi-font-weight: normal"&gt;ASP.NET&lt;/b&gt; in versione anch’essa ad hoc per il cloud e la speciale piattaforma &lt;b style="mso-bidi-font-weight: normal"&gt;AppFabric&lt;/b&gt; .&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;Viene ben puntualizzato che si tratta di un nuovo paradigma, avente il pregio per chi vi ricorre di non doversi più preoccupare nemmeno di dove”fisicamente” risiedono le soluzioni di nuova generazione ma, perciò stesso, richiede una particolare sintassi per definirne la collocazione in modo “astratto” ovvero che astrae dalle famose macchine virtuali gestite in sostanza a cura di Microsoft. Di conseguenza non si parla più di dischi C:, D: ecc. e nemmeno di directory come in Windows,ma si utilizza una diversa nomenclatura.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;Il libro, giustamente, non entra subito nei dettagli della codifica dei molti e significativi snippet e modelli in C# forniti, ma dedica un ampio primo capitolo e parte del secondo a illustrare la nuova realtà, pertanto se ne raccomanda la lettura pure a chi non deve codificare: analisti edp manager e magari dirigenti aziendali.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;Anche per questi motivi decidiamo di riportare, col permesso dell’ Editore,alcuni &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;stralci del manuale, ritenendo che siano utili a comprenderne la validità e, insieme, a chiarire i nuovi concetti.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;span style="COLOR: #002060; mso-ansi-language: EN-US" lang="EN-US"&gt;&lt;font face="Calibri"&gt;In a large enterprise project one of us worked on, 15 percent of the work hours was spent planning the development, quality assurance, and production environments. Most of this time was used to define hardware requirements, acquire capital expenditure approval, and deal with vendor management. We could’ve shipped much sooner if we’d been able to focus on the application and not the underlying infrastructure and platform. Many organizations take three to six months just to deploy a server! You won’t require this much time to complete the entire process using Windows Azure.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;As you might have already gathered, the Windows Azure platform encompasses Microsoft&amp;#8217;s complete cloud offering. Every service that Microsoft considers to be part of the cloud will be included under this banner. If the whole cloud thing passed you by, there isn&amp;#8217;t really anything magical about it. The &lt;/FONT&gt;&lt;/SPAN&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;cloud &lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;refers to a bunch of servers that host and run your applications, or to an offering of services that are consumed (think web service).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;The main difference between a cloud offering and a non-cloud offering is that the infrastructure is abstracted away&amp;#8212;in the cloud, you don&amp;#8217;t care about the physical hardware that hosts your service. Another difference is that most public cloud solutions are offered as a metered service, meaning you pay for the resources that you use (compute time, disk space, bandwidth, and so on) as and when you use them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;The Windows Azure platform splits into three parts: &lt;B style="mso-bidi-font-weight: normal"&gt;Windows Azure&lt;/B&gt;, &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;SQL A&lt;/SPAN&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;zure&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;, and the Windows Azure platform &lt;B style="mso-bidi-font-weight: normal"&gt;AppFabric&lt;/B&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;The SDK provides the following Visual Basic templates that you can use in your solutions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;ASP.NET W&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;eb &lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;R&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;ole&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;#8212;This template creates an &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;ASP.NET &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;project, preconfigured with an accompanying Azure project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;ASP.NET MVC2 W&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;eb &lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;R&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;ole&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;#8212;This template creates a project similar to the &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;ASP.NET &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;Web Role template, but is prewired to support the &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;MVC2 &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;framework.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;WCF &lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;Service &lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;W&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;eb &lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;R&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;ole&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&amp;#8212;Planning on hosting a Windows Communication Foundation &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;(WCF) &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;service instead of a normal web application? Then this is the project for you. You set this up like a normal &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;WCF &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;project, using sample files for your first service.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;Worker Role&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&amp;#8212;This template creates a class library project, preconfigured with a related Azure project. You should use this project if you&amp;#8217;re building a background processing service.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;CGI W&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;eb &lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;R&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;ole&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&amp;#8212;This project template creates the required files needed to host a FastCGI project, which we&amp;#8217;ll cover in chapter 6.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;Blank Cloud Service&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&amp;#8212;This isn&amp;#8217;t really a template&amp;#8230;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Commento fugace del recensore: dal precedente elenco si ricava o, perlomeno, si intuisce che in Azure vengono definiti dei (cosiddetti) nuovi &amp;#8220;ruoli&amp;#8221; (&lt;B style="mso-bidi-font-weight: normal"&gt;Role&lt;/B&gt;) e servizi.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="LINE-HEIGHT: 115%; mso-bidi-font-size: 8.0pt"&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Anatomy of a Virtual Machine&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT face=Calibri&gt;Una o pi&amp;#249; machine virtuali (VM) ospitano un&amp;#8217;applicazione Azure. Eccone una parte della descrizione del libro Manning.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;The physical server is split up into one or more &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM&lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;s. Every instance of your service (web role or worker role) is installed onto its own &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM&lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;, which is a base installation of Windows Server 2008 (with some extra Azure bits). The &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;hosts the web application within Internet Information Services &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;(IIS) &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;7.0.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;Although your application runs on a &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM&lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;, the &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;is abstracted away from you, and you only have a view of the role instance, never of the &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM&lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;. A single instance of your web application is assigned to a single &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM&lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;, and no other applications will be assigned to that &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM&lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;. In this way, every instance of your web application is isolated from other applications running on the same physical server. The &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;image also runs an agent process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="LINE-HEIGHT: 115%; mso-bidi-font-size: 10.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Web role and worker role&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;A role is another name for your application. The role refers to the base &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060"&gt;VM&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 8.5pt; mso-ansi-language: EN-US"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;image that hosts your application. A web role is a &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 8.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;VM &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;that hosts your application within &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 8.5pt; mso-ansi-language: EN-US" lang=EN-US&gt;IIS&lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;. A worker role is the same as a web role, but without &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #002060"&gt;IIS&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;. It&amp;#8217;s intended for typical backend processing workloads.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;A name=q&gt;&lt;/A&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Building your first Windows Azure web application&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;Although you&amp;#8217;re going to build an &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;ASP.NET &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;website in this example, the good news is that almost any website that can currently be hosted in &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;IIS &lt;/SPAN&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;on Windows Server 2008 can be hosted in Windows Azure. The following are examples of the types of web applications Azure supports out of the box:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;ASP.NET 3.&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;5 web applications&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;ASP.NET MVC 1.0, 2.0&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt; web applications&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l1 level1 lfo3" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; COLOR: #002060; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;Web services &lt;/SPAN&gt;&lt;/B&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;(WCF, ASMX&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; mso-bidi-font-size: 9.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;How the fabric and the Fabric Controller work&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Azure contains a massive number of servers, and there isn&amp;#8217;t any way they can possibly be managed on an individual basis. This is where the Azure operating system concept comes into play. By abstracting away all of those individual servers into a swarm or cloud, you only have to manage the cloud as a whole. This swarm of servers is called the &lt;/FONT&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;fabric&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;, and your applications run in the fabric when you deploy them to the cloud.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;The fabric is managed by a software overlord known as the &lt;/FONT&gt;&lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;Fabric Controller&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;. The Fabric Controller plays the role of the kernel and is aware of every hardware and software The fabric is managed by a software overlord known as the &lt;/FONT&gt;&lt;/SPAN&gt;&lt;I&gt;&lt;SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US&gt;Fabric Controller&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;. The Fabric Controller plays the role of the kernel and is aware of every hardware and software&amp;#8230;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;A name=qq&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt;Altri punti importati ben descritti dal libro sono &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Il testo prosegue descrivendo in dettaglio le operazioni pratiche, a partire da una qualit&amp;#224; molto valida, ossia la possibilit&amp;#224; offerta da Azure di creare e testare un progetto in una macchina locale, dotata anche solo di SQL Server Express (con qualche limite nei casi pi&amp;#249; complessi) prima di pubblicarlo sul cloud, fino a descrivere il modus operandi sulla nuova piattaforma &lt;B style="mso-bidi-font-weight: normal"&gt;AppFabric&lt;/B&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;A tale proposito viene messo in luce che &amp;#8220;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;The fabric&lt;/I&gt;&lt;/B&gt;&amp;#8221;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt; &lt;/I&gt;&lt;/B&gt;offre una rappresentazione astratta del data center materiale, permettendo alle applicazioni Azuredi girare &amp;#8220;in the fabric&amp;#8221; senza conoscere l&amp;#8217;infrastruttura sottostante. In particolare la potenza elaborativa viene offerta a pagamento come un servizio a pagamento basato sul consumo di risorse e con scalarit&amp;#224; &lt;I style="mso-bidi-font-style: normal"&gt;on demand&lt;/I&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;AppFabric fornisce un &lt;B style="mso-bidi-font-weight: normal"&gt;Service Bu&lt;/B&gt; per collegare tra loro le varie parti di un progetto complesso e una agevole sistema di security basato su standard, l&amp;#8217;&lt;B style="mso-bidi-font-weight: normal"&gt;Access Control Service &lt;/B&gt;&lt;/SPAN&gt;(&lt;B style="mso-bidi-font-weight: normal"&gt;ACS&lt;/B&gt;)&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Al termine vengono esposte in modo abbastanza completo e problematico le complesse questioni inquadrate come &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I&gt;Running a healthy service in the cloud&lt;/I&gt;&lt;/B&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;I titoli&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Parte 1 - Welcome to the cloud&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Parte 2 &amp;#8211; Understanding the Azure service model&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Parte3 &amp;#8211; Running your site with web roles&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Parte 4 &amp;#8211; Working with BLOB storage &lt;/B&gt;(nuovo sistema per immagazzinare file multimediali)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;Parte 5 &amp;#8211; Working with structured data &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;(tra cui il nuovo Table Service, l&amp;#8217;API REST)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;Parte 6 &amp;#8211; Doing work with messages &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;(fra worker roles, con gestione code, uso di &lt;B style="mso-bidi-font-weight: normal"&gt;AppFabric&lt;/B&gt;&lt;/SPAN&gt;)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Il libro pu&amp;#242; essere ordinato &amp;#8211; anche nella conveniente forma di e-book PDF &amp;#8211; direttamente dall&amp;#8217;editore on line.&lt;/FONT&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT color=#4f81bd size=4 face=Cambria&gt;Azure in Action by &lt;I style="mso-bidi-font-style: normal"&gt;Chris Hay e Brian H. Prince&lt;/I&gt;&lt;BR&gt;Manning Publications Co.&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;A href="http://www.manning.com/hay"&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;FONT size=4 face=Cambria&gt;www.manning.com/hay&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOGHELPER&gt;?&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;&lt;/bloghelper&gt;?&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src ="http://blog.shareoffice.it/giannigiaccaglini/aggbug/10725.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><h1 style="MARGIN: 24pt 0cm 0pt"><span style="LINE-HEIGHT: 115%; FONT-SIZE: 18pt; mso-bidi-font-size: 14.0pt"><font color="#365f91" size="3" face="Cambria"><em>V. l'ultimo post </em>QUADRATO MAGICO: <a href="http://blog.shareoffice.it/giannigiaccaglini/archive/2010/12/13/10732.aspx">http://blog.shareoffice.it/giannigiaccaglini/archive/2010/12/13/10732.aspx</a> </font></span></h1>
<h1 style="MARGIN: 24pt 0cm 0pt"><span style="LINE-HEIGHT: 115%; FONT-SIZE: 18pt; mso-bidi-font-size: 14.0pt"></span><i style="mso-bidi-font-style: normal"><span style="LINE-HEIGHT: 115%; FONT-SIZE: 18pt; mso-bidi-font-size: 14.0pt"><font color="#365f91" face="Cambria">Azure in Action</font></span></i><font color="#365f91" size="5" face="Cambria">:<br />fucina cloud di Microsoft spiegata a fondo</font></h1>
<p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">L’editore <b style="mso-bidi-font-weight: normal">Manning</b> è<b style="mso-bidi-font-weight: normal"> </b>tra i primi a proporre questo titolo molto attuale, dedicato alla proposta Microsoft per il cloud computing su cui il gigante di Redmond ha fortemente scommesso e investito. <img src="http://www.giannigiaccaglini.it/download/AzureInAction.jpg" target="_blank" /> I testi Manning, dalla copertina ispirata a quadri e litografie pittoreschi, in genere si distinguono per chiarezza espositiva e profondità che va oltre i primi passi, consentendo così al lettore di proseguire bene con le proprie forze.</font></p>
<p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">Questo manuale, scritto da <b style="mso-bidi-font-weight: normal">Chris Hay</b> e <b style="mso-bidi-font-weight: normal">Brian H. Prince</b> anche tramite contatti con gli autori Microsoft<span style="mso-spacerun: yes">  </span>di Azure, esordisce mettendo subito in evidenza la duplice natura di questo complesso ambiente:</font></p>
<p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 55.5pt; mso-add-space: auto; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpFirst"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">         </span></span></span><font face="Calibri">è un autentico <b style="mso-bidi-font-weight: normal">sistema operative per il cloud</b> offerto da Microsoft in prima persona, che metta a disposizione degli utenti una quantità impressionante di risorse hardware e software dislocate nel pianeta (due negli Usa, due in Europa, altre in<span style="mso-spacerun: yes">  </span>Asia) in modo dal tutto trasparente;</font></p>
<p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 55.5pt; mso-add-space: auto; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpLast"><span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">         </span></span></span><font face="Calibri">si compone di un insieme di <b style="mso-bidi-font-weight: normal">tool e API per sviluppare applicazioni sul cloud</b> in ambiente Visual Studio 2010 o 2008 principalmente coi linguaggi Visual Basic o, a scelta, C#.</font></p>
<p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">Fra le API citiamo solo <b style="mso-bidi-font-weight: normal">WCF</b> (Windows Communication Foundation) per implementare servizi di comunicazione per il cloud, <b style="mso-bidi-font-weight: normal">ASP.NET</b> in versione anch’essa ad hoc per il cloud e la speciale piattaforma <b style="mso-bidi-font-weight: normal">AppFabric</b> .</font></p>
<p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">Viene ben puntualizzato che si tratta di un nuovo paradigma, avente il pregio per chi vi ricorre di non doversi più preoccupare nemmeno di dove”fisicamente” risiedono le soluzioni di nuova generazione ma, perciò stesso, richiede una particolare sintassi per definirne la collocazione in modo “astratto” ovvero che astrae dalle famose macchine virtuali gestite in sostanza a cura di Microsoft. Di conseguenza non si parla più di dischi C:, D: ecc. e nemmeno di directory come in Windows,ma si utilizza una diversa nomenclatura.</font></p>
<p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">Il libro, giustamente, non entra subito nei dettagli della codifica dei molti e significativi snippet e modelli in C# forniti, ma dedica un ampio primo capitolo e parte del secondo a illustrare la nuova realtà, pertanto se ne raccomanda la lettura pure a chi non deve codificare: analisti edp manager e magari dirigenti aziendali.</font></p>
<p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><font face="Calibri">Anche per questi motivi decidiamo di riportare, col permesso dell’ Editore,alcuni <span style="mso-spacerun: yes"> </span>stralci del manuale, ritenendo che siano utili a comprenderne la validità e, insieme, a chiarire i nuovi concetti.</font></p>
<p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"><span style="COLOR: #002060; mso-ansi-language: EN-US" lang="EN-US"><font face="Calibri">In a large enterprise project one of us worked on, 15 percent of the work hours was spent planning the development, quality assurance, and production environments. Most of this time was used to define hardware requirements, acquire capital expenditure approval, and deal with vendor management. We could’ve shipped much sooner if we’d been able to focus on the application and not the underlying infrastructure and platform. Many organizations take three to six months just to deploy a server! You won’t require this much time to complete the entire process using Windows Azure.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>As you might have already gathered, the Windows Azure platform encompasses Microsoft&#8217;s complete cloud offering. Every service that Microsoft considers to be part of the cloud will be included under this banner. If the whole cloud thing passed you by, there isn&#8217;t really anything magical about it. The </FONT></SPAN><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>cloud </SPAN></I><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>refers to a bunch of servers that host and run your applications, or to an offering of services that are consumed (think web service).<o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>The main difference between a cloud offering and a non-cloud offering is that the infrastructure is abstracted away&#8212;in the cloud, you don&#8217;t care about the physical hardware that hosts your service. Another difference is that most public cloud solutions are offered as a metered service, meaning you pay for the resources that you use (compute time, disk space, bandwidth, and so on) as and when you use them.<o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>The Windows Azure platform splits into three parts: <B style="mso-bidi-font-weight: normal">Windows Azure</B>, </SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>SQL A</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>zure</SPAN></B><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>, and the Windows Azure platform <B style="mso-bidi-font-weight: normal">AppFabric</B>.<o:p></o:p></SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="mso-ansi-language: EN-US" lang=EN-US><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>The SDK provides the following Visual Basic templates that you can use in your solutions:<o:p></o:p></FONT></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><I><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>ASP.NET W</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>eb </SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>R</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>ole</SPAN></I></B><FONT face=Calibri><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>&#8212;This template creates an </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>ASP.NET </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>project, preconfigured with an accompanying Azure project.<o:p></o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><I><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>ASP.NET MVC2 W</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>eb </SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>R</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>ole</SPAN></I></B><FONT face=Calibri><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>&#8212;This template creates a project similar to the </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>ASP.NET </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>Web Role template, but is prewired to support the </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>MVC2 </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>framework.<o:p></o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><I><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>WCF </SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>Service </SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>W</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>eb </SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>R</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>ole</SPAN></I></B><FONT face=Calibri><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>&#8212;Planning on hosting a Windows Communication Foundation </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>(WCF) </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>service instead of a normal web application? Then this is the project for you. You set this up like a normal </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>WCF </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>project, using sample files for your first service.<o:p></o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>Worker Role</SPAN></I></B><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>&#8212;This template creates a class library project, preconfigured with a related Azure project. You should use this project if you&#8217;re building a background processing service.<o:p></o:p></FONT></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><I><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>CGI W</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>eb </SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; FONT-SIZE: 9pt; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>R</SPAN></I></B><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>ole</SPAN></I></B><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>&#8212;This project template creates the required files needed to host a FastCGI project, which we&#8217;ll cover in chapter 6.<o:p></o:p></FONT></SPAN></P>
<P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpLast><SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>Blank Cloud Service</SPAN></I></B><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>&#8212;This isn&#8217;t really a template&#8230;<o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Commento fugace del recensore: dal precedente elenco si ricava o, perlomeno, si intuisce che in Azure vengono definiti dei (cosiddetti) nuovi &#8220;ruoli&#8221; (<B style="mso-bidi-font-weight: normal">Role</B>) e servizi.</FONT></P>
<H2 style="MARGIN: 10pt 0cm 0pt"><SPAN style="LINE-HEIGHT: 115%; mso-bidi-font-size: 8.0pt"><FONT size=4><FONT color=#4f81bd><FONT face=Cambria>Anatomy of a Virtual Machine<o:p></o:p></FONT></FONT></FONT></SPAN></H2>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="COLOR: black"><FONT face=Calibri>Una o pi&#249; machine virtuali (VM) ospitano un&#8217;applicazione Azure. Eccone una parte della descrizione del libro Manning.<o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>The physical server is split up into one or more </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>VM</SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>s. Every instance of your service (web role or worker role) is installed onto its own </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>VM</SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>, which is a base installation of Windows Server 2008 (with some extra Azure bits). The </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>VM </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>hosts the web application within Internet Information Services </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>(IIS) </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>7.0.<o:p></o:p></SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>Although your application runs on a </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>VM</SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>, the </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>VM </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>is abstracted away from you, and you only have a view of the role instance, never of the </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>VM</SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>. A single instance of your web application is assigned to a single </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>VM</SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>, and no other applications will be assigned to that </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>VM</SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>. In this way, every instance of your web application is isolated from other applications running on the same physical server. The </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>VM </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>image also runs an agent process.<o:p></o:p></SPAN></FONT></P>
<H2 style="MARGIN: 10pt 0cm 0pt"><SPAN style="LINE-HEIGHT: 115%; mso-bidi-font-size: 10.5pt; mso-ansi-language: EN-US" lang=EN-US><FONT size=4><FONT color=#4f81bd><FONT face=Cambria>Web role and worker role<o:p></o:p></FONT></FONT></FONT></SPAN></H2>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>A role is another name for your application. The role refers to the base </SPAN><SPAN style="COLOR: #002060">VM</SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 8.5pt; mso-ansi-language: EN-US"> </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>image that hosts your application. A web role is a </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 8.5pt; mso-ansi-language: EN-US" lang=EN-US>VM </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>that hosts your application within </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 8.5pt; mso-ansi-language: EN-US" lang=EN-US>IIS</SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>. A worker role is the same as a web role, but without </SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: #002060">IIS</SPAN></B><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>. It&#8217;s intended for typical backend processing workloads.<o:p></o:p></SPAN></FONT></P>
<H2 style="MARGIN: 10pt 0cm 0pt"><A name=q></A><SPAN style="mso-ansi-language: EN-US" lang=EN-US><FONT size=4><FONT color=#4f81bd><FONT face=Cambria>Building your first Windows Azure web application<o:p></o:p></FONT></FONT></FONT></SPAN></H2>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>Although you&#8217;re going to build an </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>ASP.NET </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>website in this example, the good news is that almost any website that can currently be hosted in </SPAN><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>IIS </SPAN><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>on Windows Server 2008 can be hosted in Windows Azure. The following are examples of the types of web applications Azure supports out of the box:<o:p></o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class=MsoListParagraphCxSpFirst><SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>ASP.NET 3.</SPAN></B><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>5 web applications<o:p></o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class=MsoListParagraphCxSpMiddle><SPAN style="FONT-FAMILY: Symbol; COLOR: #002060; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>ASP.NET MVC 1.0, 2.0</SPAN></B><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US> web applications<o:p></o:p></SPAN></FONT></P>
<P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l1 level1 lfo3" class=MsoListParagraphCxSpLast><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Symbol; COLOR: #002060; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-ansi-language: EN-US" lang=EN-US><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US>Web services </SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>(WCF, ASMX</SPAN></B><SPAN style="LINE-HEIGHT: 115%; COLOR: #002060; mso-bidi-font-size: 9.0pt; mso-ansi-language: EN-US" lang=EN-US>)<o:p></o:p></SPAN></FONT></P>
<H2 style="MARGIN: 10pt 0cm 0pt"><SPAN style="mso-ansi-language: EN-US" lang=EN-US><FONT size=4><FONT color=#4f81bd><FONT face=Cambria>How the fabric and the Fabric Controller work<o:p></o:p></FONT></FONT></FONT></SPAN></H2>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>Azure contains a massive number of servers, and there isn&#8217;t any way they can possibly be managed on an individual basis. This is where the Azure operating system concept comes into play. By abstracting away all of those individual servers into a swarm or cloud, you only have to manage the cloud as a whole. This swarm of servers is called the </FONT></SPAN><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>fabric</SPAN></I></B><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>, and your applications run in the fabric when you deploy them to the cloud.<o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>The fabric is managed by a software overlord known as the </FONT></SPAN><B style="mso-bidi-font-weight: normal"><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>Fabric Controller</SPAN></I></B><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>. The Fabric Controller plays the role of the kernel and is aware of every hardware and software The fabric is managed by a software overlord known as the </FONT></SPAN><I><SPAN style="FONT-FAMILY: 'NewBaskerville-Italic','serif'; COLOR: #002060; mso-bidi-font-family: NewBaskerville-Italic; mso-ansi-language: EN-US" lang=EN-US>Fabric Controller</SPAN></I><SPAN style="COLOR: #002060; mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>. The Fabric Controller plays the role of the kernel and is aware of every hardware and software&#8230;<o:p></o:p></FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><A name=qq></A><FONT face=Calibri>Altri punti importati ben descritti dal libro sono </FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Il testo prosegue descrivendo in dettaglio le operazioni pratiche, a partire da una qualit&#224; molto valida, ossia la possibilit&#224; offerta da Azure di creare e testare un progetto in una macchina locale, dotata anche solo di SQL Server Express (con qualche limite nei casi pi&#249; complessi) prima di pubblicarlo sul cloud, fino a descrivere il modus operandi sulla nuova piattaforma <B style="mso-bidi-font-weight: normal">AppFabric</B>.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>A tale proposito viene messo in luce che &#8220;<B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal">The fabric</I></B>&#8221;<B style="mso-bidi-font-weight: normal"><I style="mso-bidi-font-style: normal"> </I></B>offre una rappresentazione astratta del data center materiale, permettendo alle applicazioni Azuredi girare &#8220;in the fabric&#8221; senza conoscere l&#8217;infrastruttura sottostante. In particolare la potenza elaborativa viene offerta a pagamento come un servizio a pagamento basato sul consumo di risorse e con scalarit&#224; <I style="mso-bidi-font-style: normal">on demand</I>.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri><SPAN style="COLOR: black">AppFabric fornisce un <B style="mso-bidi-font-weight: normal">Service Bu</B> per collegare tra loro le varie parti di un progetto complesso e una agevole sistema di security basato su standard, l&#8217;<B style="mso-bidi-font-weight: normal">Access Control Service </B></SPAN>(<B style="mso-bidi-font-weight: normal">ACS</B>)<SPAN style="COLOR: black"><o:p></o:p></SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Al termine vengono esposte in modo abbastanza completo e problematico le complesse questioni inquadrate come <B style="mso-bidi-font-weight: normal"><I>Running a healthy service in the cloud</I></B>. </FONT></P>
<H2 style="MARGIN: 10pt 0cm 0pt"><SPAN style="mso-ansi-language: EN-US" lang=EN-US><FONT size=4><FONT color=#4f81bd><FONT face=Cambria>I titoli<o:p></o:p></FONT></FONT></FONT></SPAN></H2>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>Parte 1 - Welcome to the cloud<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>Parte 2 &#8211; Understanding the Azure service model<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ansi-language: EN-US" lang=EN-US><FONT face=Calibri>Parte3 &#8211; Running your site with web roles<o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri><B style="mso-bidi-font-weight: normal">Parte 4 &#8211; Working with BLOB storage </B>(nuovo sistema per immagazzinare file multimediali)</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ansi-language: EN-US" lang=EN-US>Parte 5 &#8211; Working with structured data </SPAN></B><SPAN style="mso-ansi-language: EN-US" lang=EN-US>(tra cui il nuovo Table Service, l&#8217;API REST)<o:p></o:p></SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri><B style="mso-bidi-font-weight: normal"><SPAN style="mso-ansi-language: EN-US" lang=EN-US>Parte 6 &#8211; Doing work with messages </SPAN></B><SPAN style="mso-ansi-language: EN-US" lang=EN-US>(fra worker roles, con gestione code, uso di <B style="mso-bidi-font-weight: normal">AppFabric</B></SPAN>)</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT face=Calibri>Il libro pu&#242; essere ordinato &#8211; anche nella conveniente forma di e-book PDF &#8211; direttamente dall&#8217;editore on line.</FONT></P>
<H2 style="MARGIN: 10pt 0cm 0pt"><SPAN style="mso-ansi-language: EN-US" lang=EN-US><FONT color=#4f81bd size=4 face=Cambria>Azure in Action by <I style="mso-bidi-font-style: normal">Chris Hay e Brian H. Prince</I><BR>Manning Publications Co.<BR></FONT></SPAN><A href="http://www.manning.com/hay"><SPAN style="mso-ansi-language: EN-US" lang=EN-US><FONT size=4 face=Cambria>www.manning.com/hay</FONT></SPAN></A><SPAN style="mso-ansi-language: EN-US" lang=EN-US><o:p></o:p></SPAN></H2>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="mso-ansi-language: EN-US" lang=EN-US><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="mso-ansi-language: EN-US" lang=EN-US><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></P></BLOGHELPER>?&gt;</FONT></SPAN>
<P></P></bloghelper>?></font></span></p><img src ="http://blog.shareoffice.it/giannigiaccaglini/aggbug/10725.aspx" width = "1" height = "1" /></body></item><item><dc:creator>Gianni Giaccaglini</dc:creator><title>Divagazioni di fine 2009, su antinomie e dintorni</title><link>http://blog.shareoffice.it/giannigiaccaglini/archive/2009/12/25/10316.aspx</link><pubDate>Fri, 25 Dec 2009 17:58:00 GMT</pubDate><guid>http://blog.shareoffice.it/giannigiaccaglini/archive/2009/12/25/10316.aspx</guid><wfw:comment>http://blog.shareoffice.it/giannigiaccaglini/comments/10316.aspx</wfw:comment><comments>http://blog.shareoffice.it/giannigiaccaglini/archive/2009/12/25/10316.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.shareoffice.it/giannigiaccaglini/comments/commentRss/10316.aspx</wfw:commentRss><trackback:ping>http://blog.shareoffice.it/giannigiaccaglini/services/trackbacks/10316.aspx</trackback:ping><description>&lt;p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;font color="#000080" size="5" face="Calibri"&gt;&lt;strong&gt;Considerazioni fuori programma (rispetto alle macro e all'IT)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;Sperando di non disturbare la suscettibilità o la commiserazione di chicchessia, mi permetto alcune osservazioni spicciole su tre celebri antinomie (senza pretesa di essere esaustivo né di aver fatto scoperte originali o peggio di non commettere errori).&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;font face="Calibri"&gt;Premetto che i vari casi mi paiono afflitti da un limite della logica, almeno “normale” (ossia degli Enunciati) quando pretende di considerare il tempo...&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Tahoma&gt;&lt;FONT color=#0000ff&gt;&lt;FONT size=4&gt;ACHILLE E LA TARTARUGA&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Considerare unit&amp;#224; di tempo piccole a piacere &amp;#232; legittimo, ma non lo &amp;#232; aggiungerne di sempre pi&amp;#249; piccole concludendo con MAI. Infatti nel primo caso, per quanto piccoli siano gl&amp;#8217;intervalli temporali Achille superer&amp;#224; di certo la tartaruga in un numero finito di essi.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=5&gt;&lt;FONT color=#0000ff&gt;IL CRETESE&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Non &amp;#232; possibile, per coerenza, che un perfetto mentitore dica &amp;#8220;tutto quel che dico &amp;#232; falso&amp;#8221;, potr&amp;#224; semmai affermare &amp;#8220;tutto quel che dico &amp;#232; vero&amp;#8221;.&amp;nbsp;Dopo di che,&amp;nbsp;sospettato ingiustamente di un&amp;nbsp; delitto capitale risponder&amp;#224; s&amp;#236; alla domanda &amp;#8220;Sei tu il colpevole?&amp;#8221;, senza la soddisfazione di poter affermare, sul patibolo, &amp;#8220;Muoio per amore della Menzogna!&amp;#8221;. [O forse &amp;#8220;Muoio per amore della verit&amp;#224;&amp;#8221; &amp;#232; un&amp;#8217;antinomia? Boh].&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=5&gt;&lt;FONT color=#0000ff&gt;IL BARBIERE&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;L&amp;#8217;editto &amp;#8220;Il barbiere deve radere tutti quelli che non si fanno la barba da soli&amp;#8221; presenta almeno un&amp;#8217;ambiguit&amp;#224;: &amp;#232; lecito farsi radere da un altro? Immaginiamo che alla specifica richiesta di chiarimento &amp;#8211; come sempre accade nelle norme giuridiche o assimilabili che richiedono interpretazioni &amp;#8220;autentiche&amp;#8221; sullo &lt;EM&gt;spirito&lt;/EM&gt; di una legge &amp;#8211; il Sovrano cambi la dizione in &amp;#8220;Tutti gli abitanti si debbono radere da soli o farsi radere dal barbiere&amp;#8221;, che, senza chiarire esplicitamente che cosa deve fare il barbiere, &amp;nbsp;esclude la possibilit&amp;#224; di ricorrere ad altri che non sia il barbiere. A parte il fatto che resta oscura e comunque ardua la possibilit&amp;#224; di sanzione, esclusa la fragranza (ma se uno &amp;#232; sbarbato che si fa?), e tralasciando l&amp;#8217;ipotesi di un barbiere eunuco o femmina, il punto a mio avviso &amp;#232; che &lt;U&gt;il barbiere ha un duplice ruolo&lt;/U&gt;: &lt;EM&gt;cittadino&lt;/EM&gt; e &lt;EM&gt;funzionario-barbitonsore&lt;/EM&gt; (senza essere schizofrenico: tutti hanno ruoli molteplici in un consesso sociale). E scegliendo di radersi da solo, come cittadino, subito DOPO toglie a se stesso, cio&amp;#232; al barbiere, il compito di farlo.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=5&gt;&lt;FONT color=#0000ff&gt;CIRCUITI LOGICI SEQUENZIALI&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Mi permetto di insistere coi Logici puri (che finora non mi hanno dato retta...). I circuiti logici sequenziali (elettronici o, persino, implementati con rel&amp;#232; e contatti)&amp;nbsp;hanno un comportamento che varia nel tempo, presentando cio&amp;#232; una isteresi appunto temporale. Ne sono esempi noti anche a chi ne ignora le connessioni (di tipo feedback) i circuiti memoria (come i flip-flop) o gli oscillatori. I tecnici per descriverli e progettarli adottano una particolare &amp;#8211; ma semplice nei casi elementari - Algebra booleana, in cui sono in gioco NEGAZIONI delle uscite riportate in input. Ad esempio con un&amp;nbsp;X&amp;nbsp;&amp;nbsp;= not&amp;nbsp;Y ove X e Y sono, rispettivamente l&amp;#8217;input e l&amp;#8217;output si ottiene &lt;U&gt;sulla carta ma anche di fatto&lt;/U&gt; un oscillatore di periodo pari al tempo che separa Y e X.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Dunque &amp;#8220;in natura&amp;#8221; le antinomie sono di fatto risolte. O no? &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Baby Kruffy'; FONT-SIZE: 72pt"&gt;&lt;FONT color=#a52a2a&gt;Buon 2010 !&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT color=#ff0000 size=5&gt;&lt;STRONG&gt;P.S.&lt;/STRONG&gt;&lt;/FONT&gt; &amp;#8211; Aggiungo che l&amp;#8217;astrattezza della logica rispetto alla lebenswelt (mondo della vita) si fa sentire anche in altri contesti ove siano in gioco verbi riflessivi. Provare per ridere, con &amp;#8220;sputarsi&amp;#8221; o, peggio, con &amp;#8220;masturbarsi&amp;#8221;. O, in genere, con verbi che ammettono solo forma riflessiva...&lt;/FONT&gt;&lt;/P&gt;&lt;/bloghelper&gt;?&gt;&lt;/p&gt;&lt;img src ="http://blog.shareoffice.it/giannigiaccaglini/aggbug/10316.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font color="#000080" size="5" face="Calibri"><strong>Considerazioni fuori programma (rispetto alle macro e all'IT)</strong></font></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Sperando di non disturbare la suscettibilità o la commiserazione di chicchessia, mi permetto alcune osservazioni spicciole su tre celebri antinomie (senza pretesa di essere esaustivo né di aver fatto scoperte originali o peggio di non commettere errori).</font></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><font face="Calibri">Premetto che i vari casi mi paiono afflitti da un limite della logica, almeno “normale” (ossia degli Enunciati) quando pretende di considerare il tempo...</font></p>
<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><B><FONT face=Tahoma><FONT color=#0000ff><FONT size=4>ACHILLE E LA TARTARUGA<o:p></o:p></FONT></FONT></FONT></B></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><FONT face=Calibri>Considerare unit&#224; di tempo piccole a piacere &#232; legittimo, ma non lo &#232; aggiungerne di sempre pi&#249; piccole concludendo con MAI. Infatti nel primo caso, per quanto piccoli siano gl&#8217;intervalli temporali Achille superer&#224; di certo la tartaruga in un numero finito di essi.</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><B><FONT face=Calibri><FONT size=5><FONT color=#0000ff>IL CRETESE<o:p></o:p></FONT></FONT></FONT></B></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><FONT face=Calibri>Non &#232; possibile, per coerenza, che un perfetto mentitore dica &#8220;tutto quel che dico &#232; falso&#8221;, potr&#224; semmai affermare &#8220;tutto quel che dico &#232; vero&#8221;.&nbsp;Dopo di che,&nbsp;sospettato ingiustamente di un&nbsp; delitto capitale risponder&#224; s&#236; alla domanda &#8220;Sei tu il colpevole?&#8221;, senza la soddisfazione di poter affermare, sul patibolo, &#8220;Muoio per amore della Menzogna!&#8221;. [O forse &#8220;Muoio per amore della verit&#224;&#8221; &#232; un&#8217;antinomia? Boh].</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><B><FONT face=Calibri><FONT size=5><FONT color=#0000ff>IL BARBIERE<o:p></o:p></FONT></FONT></FONT></B></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><FONT face=Calibri>L&#8217;editto &#8220;Il barbiere deve radere tutti quelli che non si fanno la barba da soli&#8221; presenta almeno un&#8217;ambiguit&#224;: &#232; lecito farsi radere da un altro? Immaginiamo che alla specifica richiesta di chiarimento &#8211; come sempre accade nelle norme giuridiche o assimilabili che richiedono interpretazioni &#8220;autentiche&#8221; sullo <EM>spirito</EM> di una legge &#8211; il Sovrano cambi la dizione in &#8220;Tutti gli abitanti si debbono radere da soli o farsi radere dal barbiere&#8221;, che, senza chiarire esplicitamente che cosa deve fare il barbiere, &nbsp;esclude la possibilit&#224; di ricorrere ad altri che non sia il barbiere. A parte il fatto che resta oscura e comunque ardua la possibilit&#224; di sanzione, esclusa la fragranza (ma se uno &#232; sbarbato che si fa?), e tralasciando l&#8217;ipotesi di un barbiere eunuco o femmina, il punto a mio avviso &#232; che <U>il barbiere ha un duplice ruolo</U>: <EM>cittadino</EM> e <EM>funzionario-barbitonsore</EM> (senza essere schizofrenico: tutti hanno ruoli molteplici in un consesso sociale). E scegliendo di radersi da solo, come cittadino, subito DOPO toglie a se stesso, cio&#232; al barbiere, il compito di farlo.</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><B><FONT face=Calibri><FONT size=5><FONT color=#0000ff>CIRCUITI LOGICI SEQUENZIALI<o:p></o:p></FONT></FONT></FONT></B></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><FONT face=Calibri>Mi permetto di insistere coi Logici puri (che finora non mi hanno dato retta...). I circuiti logici sequenziali (elettronici o, persino, implementati con rel&#232; e contatti)&nbsp;hanno un comportamento che varia nel tempo, presentando cio&#232; una isteresi appunto temporale. Ne sono esempi noti anche a chi ne ignora le connessioni (di tipo feedback) i circuiti memoria (come i flip-flop) o gli oscillatori. I tecnici per descriverli e progettarli adottano una particolare &#8211; ma semplice nei casi elementari - Algebra booleana, in cui sono in gioco NEGAZIONI delle uscite riportate in input. Ad esempio con un&nbsp;X&nbsp;&nbsp;= not&nbsp;Y ove X e Y sono, rispettivamente l&#8217;input e l&#8217;output si ottiene <U>sulla carta ma anche di fatto</U> un oscillatore di periodo pari al tempo che separa Y e X.</FONT></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><FONT face=Calibri>Dunque &#8220;in natura&#8221; le antinomie sono di fatto risolte. O no? </FONT></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Baby Kruffy'; FONT-SIZE: 72pt"><FONT color=#a52a2a>Buon 2010 !</FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><FONT face=Calibri><FONT color=#ff0000 size=5><STRONG>P.S.</STRONG></FONT> &#8211; Aggiungo che l&#8217;astrattezza della logica rispetto alla lebenswelt (mondo della vita) si fa sentire anche in altri contesti ove siano in gioco verbi riflessivi. Provare per ridere, con &#8220;sputarsi&#8221; o, peggio, con &#8220;masturbarsi&#8221;. O, in genere, con verbi che ammettono solo forma riflessiva...</FONT></P></bloghelper>?></p><img src ="http://blog.shareoffice.it/giannigiaccaglini/aggbug/10316.aspx" width = "1" height = "1" /></body></item><item><dc:creator>Gianni Giaccaglini</dc:creator><title>Ricerca filtrata di mail: richiesta di aiuto...</title><link>http://blog.shareoffice.it/giannigiaccaglini/archive/2009/09/23/10244.aspx</link><pubDate>Wed, 23 Sep 2009 17:44:00 GMT</pubDate><guid>http://blog.shareoffice.it/giannigiaccaglini/archive/2009/09/23/10244.aspx</guid><wfw:comment>http://blog.shareoffice.it/giannigiaccaglini/comments/10244.aspx</wfw:comment><comments>http://blog.shareoffice.it/giannigiaccaglini/archive/2009/09/23/10244.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.shareoffice.it/giannigiaccaglini/comments/commentRss/10244.aspx</wfw:commentRss><trackback:ping>http://blog.shareoffice.it/giannigiaccaglini/services/trackbacks/10244.aspx</trackback:ping><description>&lt;h1 style="MARGIN: 24pt 0cm 0pt"&gt;&lt;font color="#365f91" size="5" face="Cambria"&gt;Ricerca filtrata di mail: richiesta a chi-sa-parli&lt;/font&gt;&lt;/h1&gt;
&lt;p style="MARGIN-BOTTOM: 12pt"&gt;&lt;span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Un certo &lt;b style="mso-bidi-font-weight: normal"&gt;Lorenzo Pedrinolli &lt;/b&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt"&gt;mi ha sottoposto un problema, al quale onestamente non trovo soluzione per mancanza di tempo (o incompetenza? Ebbene sì...). Tuttavia ritengo che la cosa sia di grande interesse per molti, me incluso, tanto più che il buon Lorenzo &lt;u&gt;fornisce pure una complessa routine&lt;/u&gt; attinta dal Web, &lt;u&gt;che ahimè sul suo PC malfunziona, ma fusse che fusse che un erroraccio banale è alla base del dramma?&lt;/u&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-BOTTOM: 12pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt"&gt;Che fare? Pensa e ripensa ho creduto utile pubblicare la richiesta del sullodato Pedrinolli, nella speranza che qualche anima buona ed esperta sappia aiutarlo. In tal caso siete pregati di rivolgersi al sottoscritto &lt;U&gt;solo in caso di soluzioni valide, altrimenti indirizzate soltanto al sullodato:&lt;o:p&gt;&lt;/o:p&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-ALIGN: center; MARGIN-BOTTOM: 12pt" align=center&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;A href="mailto:lorenzo.pedrinolli@gmail.com"&gt;lorenzo.pedrinolli@gmail.com&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/P&gt;
&lt;DIV style="BORDER-BOTTOM: windowtext 1.5pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-element: para-border-div"&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; MARGIN-BOTTOM: 12pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-padding-alt: 0cm 0cm 1.0pt 0cm; mso-border-bottom-alt: solid windowtext 1.5pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt"&gt;Ma ecco la missiva in questione, che al termine riporta la routine che delude. &lt;U&gt;Ovviamente sono gradite anche soluzioni diverse da quella-che-delude&lt;/U&gt;&lt;/SPAN&gt;.&lt;/P&gt;
&lt;P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; MARGIN-BOTTOM: 12pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-padding-alt: 0cm 0cm 1.0pt 0cm; mso-border-bottom-alt: solid windowtext 1.5pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style="MARGIN-BOTTOM: 12pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Salve Gianni,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-BOTTOM: 12pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Il mio datore di lavoro, per mia disgrazia, mi ha promosso programmatore solo perch&amp;#233; me la cavo con Visual Basic e SQL. Sono incappato nel suo sito alla disperata ricerca di una soluzione per esportare le mail da Outlook con una procedura quanto pi&amp;#249; automatica possibile e, facendole i complimenti [&lt;I style="mso-bidi-font-style: normal"&gt;non c&amp;#8217;&amp;#232; di che &amp;#8211; G.G. &lt;/I&gt;], ho trovato tutto quello che mi serviva. Ora per&amp;#242; &amp;#232; nato il problema opposto: da 50 - 100 mail che dovevano essere archiviate siamo passati a 4 - 5000 in poco pi&amp;#249; di due mesi e, ovviamente, mi &amp;#232; stato chiesto un programma per ricercarle in base ad attributi vari: corpo, destinatario, mittente ecc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-BOTTOM: 12pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Ora non sono in grado di trovare un modo per leggere le propriet&amp;#224; di un file *.msg presente sul disco ne tantomeno di far riconoscere a vb che quel file &amp;#232; un messaggio.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-BOTTOM: 12pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;L'unica soluzione che ho trovato &amp;#232; una script (che riporto qui sotto). A detta dell'autore dovrebbe leggere queste propriet&amp;#224; senza far ricorso ad oggetti esterni... peccato che non riconosca i file msg presenti sul mio pc e che vada in ciclo senza fine una volta s&amp;#236; e l'altra pure.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-BOTTOM: 12pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt"&gt;Confidando che riesca a trovare 10 minuti per aiutarmi [&lt;I style="mso-bidi-font-style: normal"&gt;altro che dieci minuti! &lt;/I&gt;&lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;Ce ne vorrebbero molti di pi&amp;#249;! Io non li ho ma qualcun altro ? &lt;/SPAN&gt;&lt;/I&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt"&gt;G.G.&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt"&gt;] le porgo saluti e rinnovati ringraziamenti &lt;SPAN style="mso-spacerun: yes"&gt; &lt;/SPAN&gt;per avermi salvato in varie occasioni.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-BOTTOM: 12pt"&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-SIZE: 13pt; mso-ansi-language: EN-US; mso-fareast-font-family: Calibri" lang=EN-US&gt;&lt;STRONG&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;La routine deludente&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-BOTTOM: 12pt"&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: windowtext; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Viene&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 13.0pt; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;STRONG&gt;&lt;FONT color=#4f81bd&gt; &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: windowtext; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;qui sotto&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;FONT color=#4f81bd&gt; &lt;/FONT&gt;&lt;FONT color=#000000&gt;riportata &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: windowtext; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;senza &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;altri &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: windowtext; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;commenti&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt; se non quelli incorporate [&lt;I style="mso-bidi-font-style: normal"&gt;e sperando che gli esperti cui si rivolge la richiesta di aiuto se la cavino in tale guazzabuglio. &lt;/I&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-ansi-language: EN-US; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin" lang=EN-US&gt;G.G. &lt;/SPAN&gt;&lt;/I&gt;&lt;/SPAN&gt;&lt;SPAN class=Titolo2Carattere&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-ansi-language: EN-US; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin" lang=EN-US&gt;]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-BOTTOM: 12pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;Option Explicit On&lt;BR&gt;Module Prova&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;    'MsgBox MsgGet("DateSent,ReplyType,DateReply,RecipientsBCC,RecipientsTo,RecipientsCC,From,Prefix,MessageID,Subject,DateSent,DateReceived,AttachmentNumbers,AttachmentExtract,AttachmentNames,Recipients","temp.MSG")&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;    Function MsgGet(ByVal s_Val, ByVal s_fileName)&lt;BR&gt;&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        '                            Outlook MSG Reading Utility&lt;BR&gt;        '                                Sean Currie @2005&lt;BR&gt;        '&lt;BR&gt;        ' Description : Decodes an Outlook MSG file by reading the Compound Binary File&lt;BR&gt;        '               format directly. Note most of the details on the compound binary&lt;BR&gt;        '               file format derived from &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"&gt;&lt;A href="http://www.openoffice.org/" target=_blank&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;www.openoffice.org&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;BR&gt;        '               It DOES NOT require Outlook to be installed on the client machine&lt;BR&gt;        '               nor does it require access to any libraries or third party DLL's&lt;BR&gt;        ' Arguments   : &lt;s_Val&gt; The value or values to return (each separated by a comma)&lt;BR&gt;        '                       e.g.&lt;BR&gt;        '                       Subject            - The subject of the email&lt;BR&gt;        '                       Prefix          - The subject prefix of the email&lt;BR&gt;        '                       MessageID               - The Message ID&lt;BR&gt;        '                       From             - The from address or name whichever&lt;BR&gt;        '                                                 available&lt;BR&gt;        '                       Body                    - The Message Body&lt;BR&gt;        '                       AttachmentNumbers    - The number of attachments&lt;BR&gt;        '                       AttachmentNames        - The names of the attachments&lt;BR&gt;        '                                                 (multiple values separated by a |)&lt;BR&gt;        '                       Recipients        - All of the recipient addresses or name whichever&lt;BR&gt;        '                                                 available (multiple values&lt;BR&gt;        '                                                 separated by a |)&lt;BR&gt;        '                                                 includes TO, CC and BCC&lt;BR&gt;        '                       RecipientsTo        - All the TO addresses or name whichever&lt;BR&gt;        '                                                 available (multiple values&lt;BR&gt;        '                                                 separated by a |)&lt;BR&gt;        '                       RecipientsCC        - All the CC addresses or name whichever&lt;BR&gt;        '                                                 available (multiple values&lt;BR&gt;        '                                                 separated by a |)&lt;BR&gt;        '                       RecipientsBCC        - All the BCC addresses or name whichever&lt;BR&gt;        '                                                 available (multiple values&lt;BR&gt;        '                                                 separated by a |)&lt;BR&gt;        '                       AttachmentExtract    - The attachments are extracted to&lt;BR&gt;        '                                                 a temporary folder and the names&lt;BR&gt;        '                                                 returned to the user&lt;BR&gt;        '                                                 (multiple values spearated by a |)&lt;BR&gt;        '                       DateSent                - The date sent of the email (may not&lt;BR&gt;        '                                                 have been sent if in drafts)&lt;BR&gt;        '                       DateReceived            - The date received if the email has&lt;BR&gt;        '                                                 been received&lt;BR&gt;        '                       DateReply               - Date reply requested in follow up&lt;BR&gt;        '                       ReplyType               - Reply type (Follow up type)&lt;BR&gt;        '                       &lt;BR&gt;        '                       Each value is separated by a ^ and each sub value by a |&lt;BR&gt;        '                       For example:&lt;BR&gt;        '                         asking for Recipients could return&lt;BR&gt;        '                         &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"&gt;&lt;A href="mailto:sean.currie@poboxes.com" target=_blank&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;sean.currie@poboxes.com&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;|&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"&gt;&lt;A href="mailto:nuala.currie@poboxes.com" target=_blank&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;nuala.currie@poboxes.com&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;BR&gt;        '                         You could then use Split to create an array&lt;BR&gt;        '                       For example:&lt;BR&gt;        '                         asking for "Recipients,From" could return&lt;BR&gt;        '                         &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"&gt;&lt;A href="mailto:sean.currie@poboxes.com" target=_blank&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;sean.currie@poboxes.com&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;|&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"&gt;&lt;A href="mailto:nuala.currie@poboxes.com" target=_blank&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;nuala.currie@poboxes.com&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;^&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"&gt;&lt;A href="mailto:anyone@internet.com" target=_blank&gt;&lt;SPAN style="mso-ansi-language: EN-US" lang=EN-US&gt;anyone@internet.com&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;BR&gt;        '                         You could then use Split with ^ to create two arrays&lt;BR&gt;        '                         One of recipients and one of froms&lt;BR&gt;        '                         Then you could use Split again to get a list of the Recipients&lt;BR&gt;        '&lt;BR&gt;        'Examples     : Extract just the subject&lt;BR&gt;        '               MsgBox MsgGet("Subject","test.msg")&lt;BR&gt;        '&lt;BR&gt;        '               Extract multiple fields there we extract the Subject and the From address&lt;BR&gt;        '               MsgBox MsgGet("Subject,From","test2.msg")&lt;BR&gt;        '&lt;BR&gt;        '               Extract the subject, extract the attachments to the temporary folder and&lt;BR&gt;        '               return the names of the attachments&lt;BR&gt;        '               MsgBox MsgGet("Subject,AttachmentExtract","shortcut.msg")&lt;BR&gt;        '&lt;BR&gt;        ' Created     : 24/12/2005&lt;BR&gt;        ' Version     : 1.0&lt;BR&gt;        '&lt;BR&gt;        ' Description : Modified the way attachments are decoded using a new feature I call&lt;BR&gt;        '               the MultiSectorReader, this speeds up sector decoding by reading&lt;BR&gt;        '               sequential sectors in one go thereby speeding up the read process for&lt;BR&gt;        '               big emails&lt;BR&gt;        ' Modified    : 02/01/2006&lt;BR&gt;        ' Version     : 1.1&lt;BR&gt;        '&lt;BR&gt;        ' Description : Found failure when number of bytes to read for a sector was zero added&lt;BR&gt;        '               code to check for zero sectors&lt;BR&gt;        ' Modified    : 28/01/2007&lt;BR&gt;        ' Version     : 1.2&lt;BR&gt;        '&lt;BR&gt;        ' Description : Major rewrite to reflect use of OutlookSpy to determine ID's of fields&lt;BR&gt;        '               Now accurately reports submit time and received time (previously searched&lt;BR&gt;        '               headers, now uses proper MAPI properties to get them).&lt;BR&gt;        '               Now also report recipients more accurately and can now separate TO, CC and&lt;BR&gt;        '               BCC.&lt;BR&gt;        '               Removed receivedby as didn't think it would ever be used.&lt;BR&gt;        '               Added support to determine follow up date of email (reply by field)&lt;BR&gt;        '               Now also correctly builds the directory from the array&lt;BR&gt;        ' Modified    : 23/02/2007&lt;BR&gt;        ' Version     : 2.0&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;&lt;BR&gt;        Dim o_FSO               ' File system object&lt;BR&gt;        Dim o_File               ' The input MSG file&lt;BR&gt;        Dim s_String           ' Temporary string&lt;BR&gt;        Dim s_Temp               ' Temporary variable&lt;BR&gt;        Dim s_SectSize           ' Sector size&lt;BR&gt;        Dim s_ShortSectSize       ' Short sector size&lt;BR&gt;        Dim s_SectSAT           ' No of SAT sectors&lt;BR&gt;        Dim s_DIRSID           ' First SID of directory&lt;BR&gt;        Dim s_MinStream           ' Minimum size of standard stream&lt;BR&gt;        Dim s_SIDSSAT           ' SID of the SSAT&lt;BR&gt;        Dim s_SSATNumber       ' Number of SSAT sectors&lt;BR&gt;        Dim s_SAT               ' The array of SAT entries&lt;BR&gt;        Dim s_MSATSID           ' First sector of MSAT&lt;BR&gt;        Dim s_SectMSAT           ' No of MSAT sectors&lt;BR&gt;        Dim a_Temp(0, 0)        ' The array of temporary entries&lt;BR&gt;        Dim a_Dir(0, 0)                ' The array of directory entries&lt;BR&gt;        Dim a_MSAT()           ' The array of MSAT entries&lt;BR&gt;        Dim a_SSAT()           ' The array of SSAT entries&lt;BR&gt;        Dim M_W                   ' Temporary Counter&lt;BR&gt;        Dim M_X                   ' Temporary Counter&lt;BR&gt;        Dim M_Y                   ' Temporary Counter&lt;BR&gt;        Dim M_Z                   ' Temporary Counter&lt;BR&gt;        Dim s_ShortSat           ' The short sector container stream&lt;BR&gt;        Dim s_ShortStart       ' The short sector SAT data&lt;BR&gt;        Dim s_ShortSize           ' The short sector SAT data&lt;BR&gt;        Dim a_Val               ' Array of s_Val awaiting return values&lt;BR&gt;        Dim b_Debug               ' Set this variable to True to create TXT files in the&lt;BR&gt;        ' current directory to see what is being read from the&lt;BR&gt;        ' MSG file&lt;BR&gt;        Dim s_Return           ' The returned string&lt;BR&gt;        Dim s_MessageID           ' The message ID&lt;BR&gt;        Dim s_Subject           ' The message subject&lt;BR&gt;        Dim s_From               ' The message from address&lt;BR&gt;        Dim s_Prefix           ' The message subject prefix&lt;BR&gt;        Dim s_Body               ' The message body&lt;BR&gt;        Dim s_AttachNums       ' The message attachment numbers&lt;BR&gt;        Dim a_AttachNames()       ' The message attachment names&lt;BR&gt;        Dim a_Recipients()       ' The message recipients (To, CC and BCC)&lt;BR&gt;        Dim a_RecipientsTo()   ' The message recipients in the TO list&lt;BR&gt;        Dim a_RecipientsCC()   ' The message recipients in the CC list&lt;BR&gt;        Dim a_RecipientsBCC()  ' The message recipients in the BCC list&lt;BR&gt;        Dim a_Attachments()       ' The message attachments names on disk&lt;BR&gt;        Dim a_Attachments2()   ' The message attachments names&lt;BR&gt;        Dim s_DateSent           ' The message date was sent&lt;BR&gt;        Dim s_DateReceived       ' The message date was received&lt;BR&gt;        Dim s_DateReply           ' The message date of reply (also known as follow up date)&lt;BR&gt;        Dim s_ReplyType           ' The message follow up type&lt;BR&gt;&lt;BR&gt;        ' Create object and get the file&lt;BR&gt;        o_FSO = My.Computer.FileSystem&lt;BR&gt;&lt;BR&gt;        If Not o_FSO.FileExists(s_fileName) Then&lt;BR&gt;            MsgGet = "Error: File does not exist!"&lt;BR&gt;            Exit Function&lt;BR&gt;        End If&lt;BR&gt;        If UCase(Right(s_fileName, 4)) &lt;&gt; ".MSG" Then&lt;BR&gt;            MsgGet = "Error: Not an MSG file!"&lt;BR&gt;            Exit Function&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        o_File = My.Computer.FileSystem.ReadAllText(s_fileName)&lt;BR&gt;&lt;BR&gt;        ' Check that right hand of s_Val has comma&lt;BR&gt;        If Right(s_Val, 1) &lt;&gt; "," Then&lt;BR&gt;            s_Val = s_Val &amp; ","&lt;BR&gt;        End If&lt;BR&gt;        s_Val = UCase(s_Val)&lt;BR&gt;&lt;BR&gt;        ' Set the return variables to nothing&lt;BR&gt;        MsgGet = ""&lt;BR&gt;        s_ShortSat = ""&lt;BR&gt;        s_Return = ""&lt;BR&gt;        s_Subject = ""&lt;BR&gt;        s_MessageID = ""&lt;BR&gt;        s_From = ""&lt;BR&gt;        s_Prefix = ""&lt;BR&gt;        s_Body = ""&lt;BR&gt;        s_AttachNums = 0&lt;BR&gt;        b_Debug = True&lt;BR&gt;        s_DateSent = ""&lt;BR&gt;        s_DateReceived = ""&lt;BR&gt;        s_DateReply = ""&lt;BR&gt;        s_ReplyType = ""&lt;BR&gt;&lt;BR&gt;        ' Read header characters&lt;BR&gt;        s_String = o_File.Read(8)&lt;BR&gt;&lt;BR&gt;        ' Check its a compound file&lt;BR&gt;        If s_String &lt;&gt; MyHexToHexCoded("D0CF11E0A1B11AE1") Then&lt;BR&gt;            MsgGet = "Error: Not an MSG file!"&lt;BR&gt;            Exit Function&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' Read 16 chars unique identifier with revision&lt;BR&gt;        s_String = o_File.Read(20)&lt;BR&gt;&lt;BR&gt;        ' Read 2 chars of byte identifier&lt;BR&gt;        s_String = o_File.Read(2)&lt;BR&gt;&lt;BR&gt;        If s_String &lt;&gt; MyHexToHexCoded("FEFF") Then&lt;BR&gt;            MsgGet = "Error: Not an MSG file!"&lt;BR&gt;            Exit Function&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' Read 2 chars of sector size&lt;BR&gt;        s_String = o_File.Read(2)&lt;BR&gt;&lt;BR&gt;        ' Convert to number and power of 2&lt;BR&gt;        s_SectSize = 2 ^ MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;        ' Read 2 chars of short sector size&lt;BR&gt;        s_String = o_File.Read(2)&lt;BR&gt;&lt;BR&gt;        ' Convert to number and power of 2&lt;BR&gt;        s_ShortSectSize = 2 ^ MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;        ' Read 10 chars of invalid data&lt;BR&gt;        s_String = o_File.Read(10)&lt;BR&gt;&lt;BR&gt;        ' Read 4 chars of sectors in SAT&lt;BR&gt;        s_String = o_File.Read(4)&lt;BR&gt;&lt;BR&gt;        ' Convert to number&lt;BR&gt;        s_SectSAT = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;        ' Read 4 chars of first DIR SID&lt;BR&gt;        s_String = o_File.Read(4)&lt;BR&gt;&lt;BR&gt;        ' Convert to number&lt;BR&gt;        s_DIRSID = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;        ' Read 4 chars of invalid data&lt;BR&gt;        s_String = o_File.Read(4)&lt;BR&gt;&lt;BR&gt;        ' Read 4 chars of min stream size&lt;BR&gt;        s_String = o_File.Read(4)&lt;BR&gt;&lt;BR&gt;        ' Convert to number&lt;BR&gt;        s_MinStream = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;        ' Read 4 chars of SID of the SSAT&lt;BR&gt;        s_String = o_File.Read(4)&lt;BR&gt;&lt;BR&gt;        ' Convert to number&lt;BR&gt;        s_SIDSSAT = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;        ' Read 4 chars of number of SSAT sectors&lt;BR&gt;        s_String = o_File.Read(4)&lt;BR&gt;&lt;BR&gt;        ' Convert to number&lt;BR&gt;        s_SSATNumber = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;        ' Read 4 chars of MSAT SID&lt;BR&gt;        s_String = o_File.Read(4)&lt;BR&gt;&lt;BR&gt;        ' Convert to number&lt;BR&gt;        s_MSATSID = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;        ' Read 4 chars of number of sectors in MSAT&lt;BR&gt;        s_String = o_File.Read(4)&lt;BR&gt;&lt;BR&gt;        ' Convert to number&lt;BR&gt;        s_SectMSAT = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;        ' Now read the first 109 entries in the MSAT&lt;BR&gt;        For M_X = 1 To 109&lt;BR&gt;&lt;BR&gt;            ' Read 4 chars of MSAT sector IDs&lt;BR&gt;            s_String = o_File.Read(4)&lt;BR&gt;&lt;BR&gt;            If MyVBNumber(s_String) &gt;= 0 Then&lt;BR&gt;&lt;BR&gt;                ReDim Preserve a_MSAT(MyArrayLen(a_MSAT, 1) + 1)&lt;BR&gt;&lt;BR&gt;                a_MSAT(MyArrayLen(a_MSAT, 1) - 1) = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;            End If&lt;BR&gt;&lt;BR&gt;        Next&lt;BR&gt;&lt;BR&gt;        o_File.Close()&lt;BR&gt;&lt;BR&gt;        ' The header has now been read&lt;BR&gt;        ' We now know quite a few things&lt;BR&gt;        ' - The total number of sectors in the MSAT&lt;BR&gt;        ' - The first sector of the MSAT to start reading it&lt;BR&gt;        ' We can now read the MSAT and from there we can read everything&lt;BR&gt;&lt;BR&gt;        ' Do we need to read the MSAT if it is more than 109 entries?&lt;BR&gt;        If s_MSATSID &lt;&gt; -2 Then&lt;BR&gt;&lt;BR&gt;            M_Y = s_MSATSID&lt;BR&gt;&lt;BR&gt;            ' Lets loop through the MSAT&lt;BR&gt;            Do While M_Y &gt;= 0&lt;BR&gt;&lt;BR&gt;                s_Temp = MySectorReader(s_SectSize, M_Y, s_fileName)&lt;BR&gt;&lt;BR&gt;                For M_X = 1 To s_SectSize - 4 Step 4&lt;BR&gt;&lt;BR&gt;                    s_String = Mid(s_Temp, M_X, 4)&lt;BR&gt;&lt;BR&gt;                    If MyVBNumber(s_String) &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                        ReDim Preserve a_MSAT(MyArrayLen(a_MSAT, 1) + 1)&lt;BR&gt;&lt;BR&gt;                        a_MSAT(MyArrayLen(a_MSAT, 1) - 1) = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;                    End If&lt;BR&gt;                Next&lt;BR&gt;&lt;BR&gt;                s_String = Right(s_Temp, 4)&lt;BR&gt;                If MyVBNumber(s_String) &gt; 0 Then&lt;BR&gt;                    M_Y = MyVBNumber(s_String)&lt;BR&gt;                Else&lt;BR&gt;                    M_Y = -2&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            Loop&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' Temporary debug routine to write out the MSAT&lt;BR&gt;        If b_Debug Then&lt;BR&gt;            o_File = o_FSO.CreateTextFile("MSAT.TXT")&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_MSAT, 1) - 1&lt;BR&gt;                o_File.WriteLine("---" &amp; a_MSAT(M_X))&lt;BR&gt;            Next&lt;BR&gt;            o_File.Close()&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' We now have the MSAT hence we can now build the SAT from this&lt;BR&gt;        s_SAT = ""&lt;BR&gt;&lt;BR&gt;        For M_Y = 0 To (MyArrayLen(a_MSAT, 1) - 1)&lt;BR&gt;&lt;BR&gt;            s_SAT = s_SAT &amp; MySectorReader(s_SectSize, a_MSAT(M_Y), s_fileName)&lt;BR&gt;&lt;BR&gt;        Next&lt;BR&gt;&lt;BR&gt;        ' Temporary debug routine to write out the SAT&lt;BR&gt;        If b_Debug Then&lt;BR&gt;            o_File = o_FSO.CreateTextFile("SAT.TXT")&lt;BR&gt;            o_File.WriteLine("Sector" &amp; Chr(9) &amp; " : " &amp; "Value")&lt;BR&gt;            For M_X = 1 To Len(s_SAT) Step 4&lt;BR&gt;                o_File.WriteLine(Int(M_X / 4) &amp; Chr(9) &amp; " : " &amp; MyVBNumber(Mid(s_SAT, M_X, 4)))&lt;BR&gt;            Next&lt;BR&gt;            o_File.Close()&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' Now we can read the Short Sector SSAT&lt;BR&gt;        If s_SIDSSAT &lt;&gt; -2 Then&lt;BR&gt;&lt;BR&gt;            M_Y = s_SIDSSAT&lt;BR&gt;            s_Temp = MySectorReader(s_SectSize, M_Y, s_fileName)&lt;BR&gt;&lt;BR&gt;            For M_X = 1 To s_SectSize Step 4&lt;BR&gt;&lt;BR&gt;                s_String = Mid(s_Temp, M_X, 4)&lt;BR&gt;&lt;BR&gt;                ReDim Preserve a_SSAT(MyArrayLen(a_SSAT, 1) + 1)&lt;BR&gt;                a_SSAT(MyArrayLen(a_SSAT, 1) - 1) = MyVBNumber(s_String)&lt;BR&gt;&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            M_Z = 1&lt;BR&gt;            Do While True&lt;BR&gt;                M_Y = MyVBNumber(Mid(s_SAT, (M_Y * 4) + 1, 4))&lt;BR&gt;                If M_Y &gt; 0 Then&lt;BR&gt;                    M_Z = M_Z + 1&lt;BR&gt;                    s_Temp = MySectorReader(s_SectSize, M_Y, s_fileName)&lt;BR&gt;                    For M_X = 1 To s_SectSize Step 4&lt;BR&gt;                        s_String = Mid(s_Temp, M_X, 4)&lt;BR&gt;&lt;BR&gt;                        ReDim Preserve a_SSAT(MyArrayLen(a_SSAT, 1) + 1)&lt;BR&gt;&lt;BR&gt;                        a_SSAT(MyArrayLen(a_SSAT, 1) - 1) = MyVBNumber(s_String)&lt;BR&gt;                    Next&lt;BR&gt;                End If&lt;BR&gt;                If M_Z = s_SSATNumber Then&lt;BR&gt;                    Exit Do&lt;BR&gt;                End If&lt;BR&gt;            Loop&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' Temporary debug routine to write out the SSAT&lt;BR&gt;        If b_Debug Then&lt;BR&gt;            o_File = o_FSO.CreateTextFile("SSAT.TXT")&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_SSAT, 1) - 1&lt;BR&gt;                o_File.WriteLine(M_X &amp; Chr(9) &amp; " : " &amp; a_SSAT(M_X))&lt;BR&gt;            Next&lt;BR&gt;            o_File.Close()&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' Finally lets read the directory&lt;BR&gt;        M_Y = s_DIRSID&lt;BR&gt;&lt;BR&gt;        ' Lets loop through the DIRECTORY&lt;BR&gt;        M_Z = -1&lt;BR&gt;        Do While M_Y &gt;= 0&lt;BR&gt;&lt;BR&gt;            s_Temp = MySectorReader(s_SectSize, M_Y, s_fileName)&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;            For M_X = 1 To s_SectSize Step 128&lt;BR&gt;&lt;BR&gt;                M_Z = M_Z + 1&lt;BR&gt;&lt;BR&gt;                ' First lets check the type of the directory entry and if zero it is unused&lt;BR&gt;                If MyVBNumber(Mid(s_Temp, M_X + 66, 1)) &lt;&gt; 0 Then&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;                    If MyArrayLen(a_Dir, 2) = 0 Then&lt;BR&gt;                        ReDim Preserve a_Dir(8, 1)&lt;BR&gt;                    Else&lt;BR&gt;                        ReDim Preserve a_Dir(8, MyArrayLen(a_Dir, 2) + 1)&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                    ' Format of the array&lt;BR&gt;                    ' 0 - DID&lt;BR&gt;                    ' 1 - Name &lt;BR&gt;                    ' 2 - Type&lt;BR&gt;                    ' 3 - DID Left Child&lt;BR&gt;                    ' 4 - DID Right Child&lt;BR&gt;                    ' 5 - DID root node&lt;BR&gt;                    ' 6 - SID of first sector&lt;BR&gt;                    ' 7 - Stream size&lt;BR&gt;&lt;BR&gt;                    a_Dir(0, MyArrayLen(a_Dir, 2) - 1) = M_Z&lt;BR&gt;                    a_Dir(1, MyArrayLen(a_Dir, 2) - 1) = Replace(Mid(s_Temp, M_X, MyVBNumber(Mid(s_Temp, M_X + 64, 2))), Chr(0), "")&lt;BR&gt;                    a_Dir(2, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 66, 1))&lt;BR&gt;                    a_Dir(3, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 68, 4))&lt;BR&gt;                    a_Dir(4, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 72, 4))&lt;BR&gt;                    a_Dir(5, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 76, 4))&lt;BR&gt;                    a_Dir(6, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 116, 4))&lt;BR&gt;                    a_Dir(7, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 120, 4))&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            M_Y = MyVBNumber(Mid(s_SAT, (M_Y * 4) + 1, 4))&lt;BR&gt;&lt;BR&gt;        Loop&lt;BR&gt;&lt;BR&gt;        ' Temporary debug routine to write out the SSAT&lt;BR&gt;        ' TO BE REMOVED&lt;BR&gt;        'If b_Debug Then&lt;BR&gt;        '    o_File = o_FSO.CreateTextFile("DIR.TXT")&lt;BR&gt;        '    o_File.WriteLine("DID" &amp; Chr(9) &amp; " : " &amp; "Name" &amp; String(30 - Len("Name"), " ") &amp; " : " &amp; "Type" &amp; Chr(9) &amp; " : " &amp; "Left DID" &amp; Chr(9) &amp; " : " &amp; "Right DID" &amp; Chr(9) &amp; " : " &amp; "Root DID" &amp; Chr(9) &amp; " : " &amp; "Start Sec" &amp; Chr(9) &amp; " : " &amp; "Size")&lt;BR&gt;        '    For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;        '  o_File.WriteLine(a_DIR(0,M_X) &amp; Chr(9) &amp; " : " &amp; a_DIR(1,M_X) &amp; String(30-Len(a_DIR(1,M_X))," ") &amp; " : " &amp; a_DIR(2,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_DIR(3,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_DIR(4,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_DIR(5,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_DIR(6,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_DIR(7,M_X))&lt;BR&gt;        '    Next&lt;BR&gt;        '    o_File.Close()&lt;BR&gt;        'End If&lt;BR&gt;&lt;BR&gt;        ' Find out the starting SID for the short stream container and then read the short stream container&lt;BR&gt;        If s_SIDSSAT &lt;&gt; -2 Then&lt;BR&gt;&lt;BR&gt;            s_ShortStart = 0&lt;BR&gt;            s_ShortSize = 0&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "ROOT ENTRY") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ' Allocate the first sector of the short sector container stream&lt;BR&gt;                    s_ShortStart = a_Dir(6, M_X)&lt;BR&gt;                    s_ShortSize = a_Dir(7, M_X)&lt;BR&gt;                    Exit For&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            M_Y = s_ShortStart&lt;BR&gt;            s_ShortSat = MySectorReader(s_SectSize, M_Y, s_fileName)&lt;BR&gt;&lt;BR&gt;            Do While True&lt;BR&gt;                M_Y = MyVBNumber(Mid(s_SAT, (M_Y * 4) + 1, 4))&lt;BR&gt;                If M_Y &gt; 0 Then&lt;BR&gt;                    s_ShortSat = s_ShortSat &amp; MySectorReader(s_SectSize, M_Y, s_fileName)&lt;BR&gt;                End If&lt;BR&gt;                If Len(s_ShortSat) &gt;= s_ShortSize Then&lt;BR&gt;                    Exit Do&lt;BR&gt;                End If&lt;BR&gt;            Loop&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' Now lets re-read the DIRECTORY in the proper order as Outlook scrambles it&lt;BR&gt;        For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;            ' Check for a root entry&lt;BR&gt;            If a_Dir(5, M_X) &lt;&gt; -1 Then&lt;BR&gt;&lt;BR&gt;                ' Add to final array&lt;BR&gt;                ReDim Preserve a_Temp(8, MyArrayLen(a_Temp, 2) + 1)&lt;BR&gt;                a_Temp(0, MyArrayLen(a_Temp, 2) - 1) = a_Dir(0, M_X)&lt;BR&gt;                a_Temp(1, MyArrayLen(a_Temp, 2) - 1) = a_Dir(1, M_X)&lt;BR&gt;                a_Temp(2, MyArrayLen(a_Temp, 2) - 1) = a_Dir(2, M_X)&lt;BR&gt;                a_Temp(3, MyArrayLen(a_Temp, 2) - 1) = a_Dir(3, M_X)&lt;BR&gt;                a_Temp(4, MyArrayLen(a_Temp, 2) - 1) = a_Dir(4, M_X)&lt;BR&gt;                a_Temp(5, MyArrayLen(a_Temp, 2) - 1) = a_Dir(5, M_X)&lt;BR&gt;                a_Temp(6, MyArrayLen(a_Temp, 2) - 1) = a_Dir(6, M_X)&lt;BR&gt;                a_Temp(7, MyArrayLen(a_Temp, 2) - 1) = a_Dir(7, M_X)&lt;BR&gt;&lt;BR&gt;                MySubRead(a_Dir(5, M_X), -1, a_Dir, a_Temp)&lt;BR&gt;&lt;BR&gt;            End If&lt;BR&gt;        Next&lt;BR&gt;&lt;BR&gt;        ' Temporary debug routine to write out the sorted DIRECTORY&lt;BR&gt;        ' TO BE REMOVED&lt;BR&gt;        'If b_Debug Then&lt;BR&gt;        '    o_File = o_FSO.CreateTextFile("DIRFINAL.TXT")&lt;BR&gt;        'o_File.WriteLine("DID" &amp; Chr(9) &amp; " : " &amp; "Name" &amp; String(30-Len("Name")," ") &amp; " : " &amp; "Type" &amp; Chr(9) &amp; " : " &amp; "Left DID" &amp; Chr(9) &amp; " : " &amp; "Right DID" &amp; Chr(9) &amp; " : " &amp; "Root DID" &amp; Chr(9) &amp; " : " &amp; "Start Sec" &amp; Chr(9) &amp; " : " &amp; "Size")&lt;BR&gt;        '    For M_X = 0 To MyArrayLen(a_Temp, 2) - 1&lt;BR&gt;        '  o_File.WriteLine(a_Temp(0,M_X) &amp; Chr(9) &amp; " : " &amp; a_Temp(1,M_X) &amp; String(30-Len(a_Temp(1,M_X))," ") &amp; " : " &amp; a_Temp(2,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_Temp(3,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_Temp(4,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_Temp(5,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_Temp(6,M_X) &amp; Chr(9) &amp; Chr(9) &amp; " : " &amp; a_Temp(7,M_X))&lt;BR&gt;        '    Next&lt;BR&gt;        '    o_File.Close()&lt;BR&gt;        'End If&lt;BR&gt;&lt;BR&gt;        ReDim a_Dir(8, MyArrayLen(a_Temp, 2))&lt;BR&gt;&lt;BR&gt;        For M_X = 0 To MyArrayLen(a_Temp, 2) - 1&lt;BR&gt;&lt;BR&gt;            a_Dir(0, M_X) = a_Temp(0, M_X)&lt;BR&gt;            a_Dir(1, M_X) = a_Temp(1, M_X)&lt;BR&gt;            a_Dir(2, M_X) = a_Temp(2, M_X)&lt;BR&gt;            a_Dir(3, M_X) = a_Temp(3, M_X)&lt;BR&gt;            a_Dir(4, M_X) = a_Temp(4, M_X)&lt;BR&gt;            a_Dir(5, M_X) = a_Temp(5, M_X)&lt;BR&gt;            a_Dir(6, M_X) = a_Temp(6, M_X)&lt;BR&gt;            a_Dir(7, M_X) = a_Temp(7, M_X)&lt;BR&gt;&lt;BR&gt;        Next&lt;BR&gt;&lt;BR&gt;        ' Now lets build the return strings and data&lt;BR&gt;        If InStr(s_Val, "SUBJECT,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the subject&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_0037") &gt; 0 And a_Dir(7, M_X) &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_Subject = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_Subject = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' Now lets build the return strings and data&lt;BR&gt;        If InStr(s_Val, "REPLYTYPE,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the subject&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_8003") &gt; 0 And a_Dir(7, M_X) &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_ReplyType = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_ReplyType = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "MESSAGEID,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the message id&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_1035") &gt; 0 And a_Dir(7, M_X) &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_MessageID = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_MessageID = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "FROM,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the from type to find out the source email address&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for SMTP&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_0065") &gt; 0 And a_Dir(7, M_X) &gt; 0 And s_From = "" Then&lt;BR&gt;&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_From = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                    Else&lt;BR&gt;                        s_From = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            ' Check if valid SMTP address&lt;BR&gt;            If InStr(s_From, "@") = 0 Then&lt;BR&gt;                s_From = ""&lt;BR&gt;            Else&lt;BR&gt;                s_From = Replace(s_From, "&lt;", "")&lt;BR&gt;                s_From = Replace(s_From, "&gt;", "")&lt;BR&gt;                s_From = Replace(s_From, "'", "")&lt;BR&gt;            End If&lt;BR&gt;&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for return address&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_800A") &gt; 0 And a_Dir(7, M_X) &gt; 0 And s_From = "" Then&lt;BR&gt;&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_From = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_From = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            ' Check if valid SMTP address&lt;BR&gt;            If InStr(s_From, "@") = 0 Then&lt;BR&gt;                s_From = ""&lt;BR&gt;            Else&lt;BR&gt;                s_From = Replace(s_From, "&lt;", "")&lt;BR&gt;                s_From = Replace(s_From, "&gt;", "")&lt;BR&gt;                s_From = Replace(s_From, "'", "")&lt;BR&gt;            End If&lt;BR&gt;&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for return address&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_800B") &gt; 0 And a_Dir(7, M_X) &gt; 0 And s_From = "" Then&lt;BR&gt;&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_From = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_From = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            ' Check if valid SMTP address&lt;BR&gt;            If InStr(s_From, "@") = 0 Then&lt;BR&gt;                s_From = ""&lt;BR&gt;            Else&lt;BR&gt;                s_From = Replace(s_From, "&lt;", "")&lt;BR&gt;                s_From = Replace(s_From, "&gt;", "")&lt;BR&gt;                s_From = Replace(s_From, "'", "")&lt;BR&gt;            End If&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the from type to find out the source email address&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for display name&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_0C1A") &gt; 0 And a_Dir(7, M_X) &gt; 0 And s_From = "" Then&lt;BR&gt;&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_From = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_From = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "PREFIX,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the message id&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_003D") &gt; 0 And a_Dir(7, M_X) &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_Prefix = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_Prefix = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "BODY,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the message body&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_1000") &gt; 0 And a_Dir(7, M_X) &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_Body = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_Body = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "ATTACHMENTNUMBERS,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the attachments&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__ATTACH_VERSION1.0_#") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ' Total the number in the email&lt;BR&gt;                    s_AttachNums = s_AttachNums + 1&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "ATTACHMENTNAMES,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the attachments&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for attachment&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__ATTACH_VERSION1.0_#") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ReDim Preserve a_AttachNames(MyArrayLen(a_AttachNames, 1) + 1)&lt;BR&gt;&lt;BR&gt;                    ' Get attachment name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for attachment name&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;&lt;BR&gt;                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3704") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                a_AttachNames(MyArrayLen(a_AttachNames, 1) - 1) = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                a_AttachNames(MyArrayLen(a_AttachNames, 1) - 1) = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3707") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                a_AttachNames(MyArrayLen(a_AttachNames, 1) - 1) = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                a_AttachNames(MyArrayLen(a_AttachNames, 1) - 1) = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "RECIPIENTS,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the recipients&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for recipient&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__RECIP_VERSION1.0_#") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ReDim Preserve a_Recipients(MyArrayLen(a_Recipients, 1) + 1)&lt;BR&gt;&lt;BR&gt;                    s_Temp = ""&lt;BR&gt;&lt;BR&gt;                    ' Get recipient name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for next recipient email&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;                            Exit For&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_39FE") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_Recipients(MyArrayLen(a_Recipients, 1) - 1) = s_String&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get org email&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for next recipient email&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_403E") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_Recipients(MyArrayLen(a_Recipients, 1) - 1) = s_String&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get recipient name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for next recipient display name&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3001") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_Recipients(MyArrayLen(a_Recipients, 1) - 1) = s_String&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "RECIPIENTSTO,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the recipients&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for recipient&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__RECIP_VERSION1.0_#") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ReDim Preserve a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) + 1)&lt;BR&gt;&lt;BR&gt;                    s_Temp = ""&lt;BR&gt;&lt;BR&gt;                    ' Get recipient name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient email&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;                            Exit For&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_39FE") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) - 1) = s_String&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get org email&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient display name&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_403E") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) - 1) = s_String&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get recipient name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient display name&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3001") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) - 1) = s_String&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get recipient type and delete if wrong&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check if its in the TO list&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 And a_Dir(7, M_Y) &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat)&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            For M_Z = 1 To Len(s_String) Step 8&lt;BR&gt;                                If Mid(s_String, M_Z, 4) = MyHexToHexCoded("0300150C") Then&lt;BR&gt;                                    If MyVBNumber(Mid(s_String, M_Z + 8, 1)) &lt;&gt; 1 And s_Temp &lt;&gt; "" Then&lt;BR&gt;                                        If MyArrayLen(a_RecipientsTo, 1) &gt; 1 Then&lt;BR&gt;                                            ReDim Preserve a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) - 1)&lt;BR&gt;                                        Else&lt;BR&gt;                                            ReDim a_RecipientsTo(0)&lt;BR&gt;                                        End If&lt;BR&gt;                                    End If&lt;BR&gt;                                End If&lt;BR&gt;                            Next&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient email&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;                            Exit For&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "RECIPIENTSCC,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the recipients&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for recipient&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__RECIP_VERSION1.0_#") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ReDim Preserve a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) + 1)&lt;BR&gt;&lt;BR&gt;                    s_Temp = ""&lt;BR&gt;&lt;BR&gt;                    ' Get recipient name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient email&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;                            Exit For&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_39FE") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) - 1) = s_String&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get org email&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient display name&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_403E") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) - 1) = s_String&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get recipient name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient display name&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3001") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) - 1) = s_String&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get recipient type and delete if wrong&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check if its in the TO list&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 And a_Dir(7, M_Y) &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat)&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            For M_Z = 1 To Len(s_String) Step 8&lt;BR&gt;                                If Mid(s_String, M_Z, 4) = MyHexToHexCoded("0300150C") Then&lt;BR&gt;                                    If MyVBNumber(Mid(s_String, M_Z + 8, 1)) &lt;&gt; 2 And s_Temp &lt;&gt; "" Then&lt;BR&gt;                                        If MyArrayLen(a_RecipientsCC, 1) &gt; 1 Then&lt;BR&gt;                                            ReDim Preserve a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) - 1)&lt;BR&gt;                                        Else&lt;BR&gt;                                            ReDim a_RecipientsCC(0)&lt;BR&gt;                                        End If&lt;BR&gt;                                    End If&lt;BR&gt;                                End If&lt;BR&gt;                            Next&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient email&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;                            Exit For&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "RECIPIENTSBCC,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the recipients&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for recipient&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__RECIP_VERSION1.0_#") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ReDim Preserve a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) + 1)&lt;BR&gt;&lt;BR&gt;                    s_Temp = ""&lt;BR&gt;&lt;BR&gt;                    ' Get recipient name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient email&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;                            Exit For&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_39FE") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) - 1) = s_String&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get org email&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient display name&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_403E") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) - 1) = s_String&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get recipient name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient display name&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3001") &gt; 0 And a_Dir(7, M_Y) &gt; 0 And s_Temp = "" Then&lt;BR&gt;&lt;BR&gt;                            s_Temp = "1"&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            ' Check if valid SMTP address&lt;BR&gt;                            If InStr(s_String, "@") &lt;&gt; 0 Then&lt;BR&gt;                                s_String = Replace(s_String, "&lt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "&gt;", "")&lt;BR&gt;                                s_String = Replace(s_String, "'", "")&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) - 1) = s_String&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                    ' Get recipient type and delete if wrong&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check if its in the TO list&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 And a_Dir(7, M_Y) &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            s_String = ""&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                s_String = MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat)&lt;BR&gt;                            Else&lt;BR&gt;                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                            For M_Z = 1 To Len(s_String) Step 8&lt;BR&gt;                                If Mid(s_String, M_Z, 4) = MyHexToHexCoded("0300150C") Then&lt;BR&gt;                                    If MyVBNumber(Mid(s_String, M_Z + 8, 1)) &lt;&gt; 3 And s_Temp &lt;&gt; "" Then&lt;BR&gt;                                        If MyArrayLen(a_RecipientsBCC, 1) &gt; 1 Then&lt;BR&gt;                                            ReDim Preserve a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) - 1)&lt;BR&gt;                                        Else&lt;BR&gt;                                            ReDim a_RecipientsBCC(0)&lt;BR&gt;                                        End If&lt;BR&gt;                                    End If&lt;BR&gt;                                End If&lt;BR&gt;                            Next&lt;BR&gt;&lt;BR&gt;                        End If&lt;BR&gt;&lt;BR&gt;                        ' Check for recipient email&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;                            Exit For&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        If InStr(s_Val, "ATTACHMENTEXTRACT,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            ' Now get the directory entry for the attachments&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for attachment&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__ATTACH_VERSION1.0_#") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                    ReDim Preserve a_Attachments(MyArrayLen(a_Attachments, 1) + 1)&lt;BR&gt;                    ReDim Preserve a_Attachments2(MyArrayLen(a_Attachments2, 1) + 1)&lt;BR&gt;&lt;BR&gt;                    ' Get attachment name&lt;BR&gt;                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;                        ' Check for attachment name&lt;BR&gt;                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") &gt; 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            Exit For&lt;BR&gt;&lt;BR&gt;                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3701") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;&lt;BR&gt;                                s_Temp = o_FSO.GetSpecialFolder(2) &amp; o_FSO.GetTempName&lt;BR&gt;                                o_File = o_FSO.CreateTextFile(s_Temp, True, False)&lt;BR&gt;                                o_File.Write(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat))&lt;BR&gt;                                a_Attachments(MyArrayLen(a_Attachments, 1) - 1) = s_Temp&lt;BR&gt;                                o_File.Close()&lt;BR&gt;&lt;BR&gt;                            Else&lt;BR&gt;&lt;BR&gt;                                a_Attachments(MyArrayLen(a_Attachments, 1) - 1) = MyLongSectorReader("FILE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3704") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                a_Attachments2(MyArrayLen(a_Attachments2, 1) - 1) = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                a_Attachments2(MyArrayLen(a_Attachments2, 1) - 1) = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;&lt;BR&gt;                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3707") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                            ' Check if in short stream&lt;BR&gt;                            If a_Dir(7, M_Y) &lt; s_MinStream Then&lt;BR&gt;                                a_Attachments2(MyArrayLen(a_Attachments2, 1) - 1) = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")&lt;BR&gt;                            Else&lt;BR&gt;                                a_Attachments2(MyArrayLen(a_Attachments2, 1) - 1) = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)&lt;BR&gt;                            End If&lt;BR&gt;                        End If&lt;BR&gt;                    Next&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;            ' At this stage we have temporary filenames and an array of names&lt;BR&gt;            ' We now need to:&lt;BR&gt;            ' - Check for existing files&lt;BR&gt;            ' - Rename the temporary files to the new names&lt;BR&gt;&lt;BR&gt;            ' Delete files in temporary folder&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Attachments2, 1) - 1&lt;BR&gt;&lt;BR&gt;                ' Check for existing files&lt;BR&gt;                If o_FSO.FileExists(o_FSO.GetSpecialFolder(2) &amp; "\" &amp; a_Attachments2(M_X)) Then&lt;BR&gt;&lt;BR&gt;                    On Error Resume Next&lt;BR&gt;                    o_FSO.DeleteFile(o_FSO.GetSpecialFolder(2) &amp; "\" &amp; a_Attachments2(M_X))&lt;BR&gt;                    On Error GoTo 0&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            ' Now rename attachments&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Attachments2, 1) - 1&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;                ' Check for existing files&lt;BR&gt;                If o_FSO.FileExists(o_FSO.GetSpecialFolder(2) &amp; "\" &amp; a_Attachments2(M_X)) Then&lt;BR&gt;&lt;BR&gt;                    M_Y = 1&lt;BR&gt;                    Do While o_FSO.FileExists(o_FSO.GetSpecialFolder(2) &amp; "\" &amp; M_Y &amp; a_Attachments2(M_X))&lt;BR&gt;                        M_Y = M_Y + 1&lt;BR&gt;                    Loop&lt;BR&gt;&lt;BR&gt;                    o_FSO.MoveFile(a_Attachments(M_X), o_FSO.GetSpecialFolder(2) &amp; "\" &amp; M_Y &amp; a_Attachments2(M_X))&lt;BR&gt;                    a_Attachments(M_X) = o_FSO.GetSpecialFolder(2) &amp; "\" &amp; M_Y &amp; a_Attachments2(M_X)&lt;BR&gt;&lt;BR&gt;                Else&lt;BR&gt;&lt;BR&gt;                    o_FSO.MoveFile(a_Attachments(M_X), o_FSO.GetSpecialFolder(2) &amp; "\" &amp; a_Attachments2(M_X))&lt;BR&gt;                    a_Attachments(M_X) = o_FSO.GetSpecialFolder(2) &amp; "\" &amp; a_Attachments2(M_X)&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            Next&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' The date sent&lt;BR&gt;        If InStr(s_Val, "DATESENT,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            s_Temp = ""&lt;BR&gt;            ' Now get the directory entry for the first properties&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__PROPERTIES_VERSION1.0") &gt; 0 And a_Dir(7, M_X) &gt; 0 Then&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_Temp = MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat)&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_Temp = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            ' Now we've got the properties lets read them&lt;BR&gt;            For M_X = 1 To Len(s_Temp) Step 16&lt;BR&gt;                If Mid(s_Temp, M_X, 4) = MyHexToHexCoded("40003900") Then&lt;BR&gt;                    s_DateSent = MyGregorianDate(MyVBNumber(Mid(s_Temp, M_X + 8, 8)))&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' The date received&lt;BR&gt;        If InStr(s_Val, "DATERECEIVED,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            s_Temp = ""&lt;BR&gt;            ' Now get the directory entry for the first properties&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__PROPERTIES_VERSION1.0") &gt; 0 And a_Dir(7, M_X) &gt; 0 Then&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_Temp = MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat)&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_Temp = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            ' Now we've got the properties lets read them&lt;BR&gt;            s_DateReceived = ""&lt;BR&gt;            For M_X = 1 To Len(s_Temp) Step 16&lt;BR&gt;                If Mid(s_Temp, M_X, 4) = MyHexToHexCoded("4000060E") Then&lt;BR&gt;                    s_DateReceived = MyGregorianDate(MyVBNumber(Mid(s_Temp, M_X + 8, 8)))&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;        ' The date reply requested&lt;BR&gt;        If InStr(s_Val, "DATEREPLY,") &gt; 0 Then&lt;BR&gt;&lt;BR&gt;            s_Temp = ""&lt;BR&gt;            ' Now get the directory entry for the first properties&lt;BR&gt;            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;                If InStr(UCase(a_Dir(1, M_X)), "__PROPERTIES_VERSION1.0") &gt; 0 And a_Dir(7, M_X) &gt; 0 Then&lt;BR&gt;                    ' Check if in short stream&lt;BR&gt;                    If a_Dir(7, M_X) &lt; s_MinStream Then&lt;BR&gt;                        s_Temp = MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat)&lt;BR&gt;                        Exit For&lt;BR&gt;                    Else&lt;BR&gt;                        s_Temp = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)&lt;BR&gt;                        Exit For&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;            ' Now we've got the properties lets read them&lt;BR&gt;            s_DateReply = ""&lt;BR&gt;            For M_X = 1 To Len(s_Temp) Step 16&lt;BR&gt;                If Mid(s_Temp, M_X, 4) = MyHexToHexCoded("40003000") Then&lt;BR&gt;                    s_DateReply = MyGregorianDate(MyVBNumber(Mid(s_Temp, M_X + 8, 8)))&lt;BR&gt;                End If&lt;BR&gt;            Next&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        ' Build the return string by checking what was asked for&lt;BR&gt;        a_Val = Split(s_Val, ",")&lt;BR&gt;        s_Return = ""&lt;BR&gt;        For M_X = 0 To MyArrayLen(a_Val, 1) - 1&lt;BR&gt;&lt;BR&gt;            If Len(Trim(a_Val(M_X))) &lt;&gt; 0 Then&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "SUBJECT" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        If Len(s_Subject) &gt; 0 Then&lt;BR&gt;                            s_Return = s_Return &amp; s_Subject&lt;BR&gt;                        Else&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_Subject&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "MESSAGEID" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        If Len(s_MessageID) &gt; 0 Then&lt;BR&gt;                            s_Return = s_Return &amp; s_MessageID&lt;BR&gt;                        Else&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_MessageID&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "FROM" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        If Len(s_From) &gt; 0 Then&lt;BR&gt;                            s_Return = s_Return &amp; s_From&lt;BR&gt;                        Else&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_From&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "PREFIX" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        If Len(s_Prefix) &gt; 0 Then&lt;BR&gt;                            s_Return = s_Return &amp; s_Prefix&lt;BR&gt;                        Else&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_Prefix&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "BODY" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        If Len(s_Body) &gt; 0 Then&lt;BR&gt;                            s_Return = s_Return &amp; s_Body&lt;BR&gt;                        Else&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_Body&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "ATTACHMENTNUMBERS" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        If Len(s_AttachNums) &gt; 0 Then&lt;BR&gt;                            s_Return = s_AttachNums&lt;BR&gt;                        Else&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_AttachNums&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "ATTACHMENTNAMES" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_AttachNames, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_AttachNames(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^"&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_AttachNames, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_AttachNames(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                    End If&lt;BR&gt;                    If Right(s_Return, 1) = "|" Then&lt;BR&gt;                        s_Return = Left(s_Return, Len(s_Return) - 1)&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "RECIPIENTS" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_Recipients, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_Recipients(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^"&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_Recipients, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_Recipients(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                    End If&lt;BR&gt;                    If Right(s_Return, 1) = "|" Then&lt;BR&gt;                        s_Return = Left(s_Return, Len(s_Return) - 1)&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "RECIPIENTSTO" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_RecipientsTo, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_RecipientsTo(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^"&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_RecipientsTo, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_RecipientsTo(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                    End If&lt;BR&gt;                    If Right(s_Return, 1) = "|" Then&lt;BR&gt;                        s_Return = Left(s_Return, Len(s_Return) - 1)&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "RECIPIENTSCC" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_RecipientsCC, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_RecipientsCC(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^"&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_RecipientsCC, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_RecipientsCC(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                    End If&lt;BR&gt;                    If Right(s_Return, 1) = "|" Then&lt;BR&gt;                        s_Return = Left(s_Return, Len(s_Return) - 1)&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "RECIPIENTSBCC" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_RecipientsBCC, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_RecipientsBCC(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^"&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_RecipientsBCC, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_RecipientsBCC(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                    End If&lt;BR&gt;                    If Right(s_Return, 1) = "|" Then&lt;BR&gt;                        s_Return = Left(s_Return, Len(s_Return) - 1)&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "ATTACHMENTEXTRACT" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_Attachments, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_Attachments(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^"&lt;BR&gt;                        For M_Y = 0 To MyArrayLen(a_Attachments, 1) - 1&lt;BR&gt;                            s_Return = s_Return &amp; a_Attachments(M_Y) &amp; "|"&lt;BR&gt;                        Next&lt;BR&gt;                    End If&lt;BR&gt;                    If Right(s_Return, 1) = "|" Then&lt;BR&gt;                        s_Return = Left(s_Return, Len(s_Return) - 1)&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "DATESENT" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        s_Return = s_DateSent&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_DateSent&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "DATERECEIVED" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        s_Return = s_DateReceived&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_DateReceived&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "DATEREPLY" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        s_Return = s_DateReply&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_DateReply&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If UCase(Trim(a_Val(M_X))) = "REPLYTYPE" Then&lt;BR&gt;                    If s_Return = "" Then&lt;BR&gt;                        s_Return = s_ReplyType&lt;BR&gt;                        If Len(s_Return) = 0 Then&lt;BR&gt;                            s_Return = " "&lt;BR&gt;                        End If&lt;BR&gt;                    Else&lt;BR&gt;                        s_Return = s_Return &amp; "^" &amp; s_ReplyType&lt;BR&gt;                    End If&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            End If&lt;BR&gt;        Next&lt;BR&gt;&lt;BR&gt;        MsgGet = s_Return&lt;BR&gt;&lt;BR&gt;        o_File = Nothing&lt;BR&gt;        o_FSO = Nothing&lt;BR&gt;    End Function&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;    Function MyHexToHexCoded(ByVal s_String)&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        ' Description : Takes a string such as "D0CF" and returns a HEX string which can be&lt;BR&gt;        '               compared with characters read from a file&lt;BR&gt;        ' Created     : 24/12/2005&lt;BR&gt;        ' Version     : 1.0&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        Dim M_X&lt;BR&gt;        Dim s_Temp&lt;BR&gt;&lt;BR&gt;        s_Temp = ""&lt;BR&gt;        For M_X = 1 To Len(s_String) Step 2&lt;BR&gt;            s_Temp = s_Temp &amp; Chr(CLng("&amp;H" &amp; Mid(s_String, M_X, 2)))&lt;BR&gt;        Next&lt;BR&gt;        MyHexToHexCoded = s_Temp&lt;BR&gt;    End Function&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;    Function MyVBNumber(ByVal s_String)&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        ' Description : Takes chars read from file and converts to number&lt;BR&gt;        ' Created     : 24/12/2005&lt;BR&gt;        ' Version     : 1.0&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;&lt;BR&gt;        MyVBNumber = 0&lt;BR&gt;        If Len(s_String) = 1 Then&lt;BR&gt;            If Asc(Mid(s_String, 1, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -1&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 254 Then&lt;BR&gt;                MyVBNumber = -1&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 253 Then&lt;BR&gt;                MyVBNumber = -2&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 252 Then&lt;BR&gt;                MyVBNumber = -3&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 251 Then&lt;BR&gt;                MyVBNumber = -4&lt;BR&gt;            Else&lt;BR&gt;                MyVBNumber = Asc(Mid(s_String, 1, 1))&lt;BR&gt;            End If&lt;BR&gt;        ElseIf Len(s_String) = 2 Then&lt;BR&gt;            If Asc(Mid(s_String, 1, 1)) = 255 And Asc(Mid(s_String, 2, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -1&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 254 And Asc(Mid(s_String, 2, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -1&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 253 And Asc(Mid(s_String, 2, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -2&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 252 And Asc(Mid(s_String, 2, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -3&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 251 And Asc(Mid(s_String, 2, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -4&lt;BR&gt;            Else&lt;BR&gt;                MyVBNumber = Asc(Mid(s_String, 1, 1)) + Asc(Mid(s_String, 2, 1)) * 256&lt;BR&gt;            End If&lt;BR&gt;        ElseIf Len(s_String) = 4 Then&lt;BR&gt;            If Asc(Mid(s_String, 1, 1)) = 255 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -1&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 254 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -1&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 253 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -2&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 252 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -3&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 251 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -4&lt;BR&gt;            Else&lt;BR&gt;                MyVBNumber = Asc(Mid(s_String, 1, 1)) + Asc(Mid(s_String, 2, 1)) * 256 + Asc(Mid(s_String, 3, 1)) * 65536 + Asc(Mid(s_String, 4, 1)) * 16777216&lt;BR&gt;            End If&lt;BR&gt;        ElseIf Len(s_String) = 8 Then&lt;BR&gt;            If Asc(Mid(s_String, 1, 1)) = 255 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 And Asc(Mid(s_String, 5, 1)) = 255 And Asc(Mid(s_String, 6, 1)) = 255 And Asc(Mid(s_String, 7, 1)) = 255 And Asc(Mid(s_String, 8, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -1&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 254 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 And Asc(Mid(s_String, 5, 1)) = 255 And Asc(Mid(s_String, 6, 1)) = 255 And Asc(Mid(s_String, 7, 1)) = 255 And Asc(Mid(s_String, 8, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -1&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 253 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 And Asc(Mid(s_String, 5, 1)) = 255 And Asc(Mid(s_String, 6, 1)) = 255 And Asc(Mid(s_String, 7, 1)) = 255 And Asc(Mid(s_String, 8, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -2&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 252 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 And Asc(Mid(s_String, 5, 1)) = 255 And Asc(Mid(s_String, 6, 1)) = 255 And Asc(Mid(s_String, 7, 1)) = 255 And Asc(Mid(s_String, 8, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -3&lt;BR&gt;            ElseIf Asc(Mid(s_String, 1, 1)) = 251 And Asc(Mid(s_String, 2, 1)) = 255 And Asc(Mid(s_String, 3, 1)) = 255 And Asc(Mid(s_String, 4, 1)) = 255 And Asc(Mid(s_String, 5, 1)) = 255 And Asc(Mid(s_String, 6, 1)) = 255 And Asc(Mid(s_String, 7, 1)) = 255 And Asc(Mid(s_String, 8, 1)) = 255 Then&lt;BR&gt;                MyVBNumber = -4&lt;BR&gt;            Else&lt;BR&gt;                MyVBNumber = Asc(Mid(s_String, 1, 1)) + Asc(Mid(s_String, 2, 1)) * 256 + Asc(Mid(s_String, 3, 1)) * 65536 + Asc(Mid(s_String, 4, 1)) * 16777216 + Asc(Mid(s_String, 5, 1)) * 4294967296 + Asc(Mid(s_String, 6, 1)) * 1099511627776 + Asc(Mid(s_String, 7, 1)) * 281474976710656 + Asc(Mid(s_String, 8, 1)) * 72057594037927900&lt;BR&gt;            End If&lt;BR&gt;        End If&lt;BR&gt;    End Function&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;    Function MyArrayLen(ByVal MyArray, ByVal MyDim)&lt;BR&gt;        ' *****************************************************************************&lt;BR&gt;        ' Function    : MyArrayLen&lt;BR&gt;        ' Arguments   : &lt;MyArray&gt; Array to get length of&lt;BR&gt;        '               &lt;MyDim&gt;   Dimension of array to test&lt;BR&gt;        ' Returns     : Length of array&lt;BR&gt;        ' Description : Returns the length of an array even if it is null or not&lt;BR&gt;        '               defined. UBound does not work on some types of variant array&lt;BR&gt;        '               so discovered best to use For Each when dimension 1 and UBound&lt;BR&gt;        '               for other dimensions.&lt;BR&gt;        ' Created     : 20/10/2001 S Currie&lt;BR&gt;        ' *****************************************************************************&lt;BR&gt;        Dim MyLength&lt;BR&gt;        MyLength = 0&lt;BR&gt;        On Error Resume Next&lt;BR&gt;        MyLength = UBound(MyArray, MyDim)&lt;BR&gt;        If MyLength &lt; 0 Then&lt;BR&gt;            MyLength = 0&lt;BR&gt;        End If&lt;BR&gt;        MyArrayLen = MyLength&lt;BR&gt;    End Function&lt;BR&gt;&lt;BR&gt;    Function MySectorReader(ByVal s_SectSize, ByVal s_SID, ByVal s_FileName)&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        ' Description : Reads a number of characters from a particular sector in a file&lt;BR&gt;        ' Arguments   : &lt;s_SectSize&gt;     The size of the sectors to be read&lt;BR&gt;        '               &lt;s_SID&gt;          The particluar sector to be read&lt;BR&gt;        '               &lt;s_FileName&gt;     The filename which they are to be read from&lt;BR&gt;        ' Created     : 30/12/2005&lt;BR&gt;        ' Version     : 1.0&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        Dim o_FSO&lt;BR&gt;        Dim o_File&lt;BR&gt;&lt;BR&gt;        ' Create object and get the file&lt;BR&gt;        o_FSO = My.Computer.FileSystem&lt;BR&gt;&lt;BR&gt;        If Not o_FSO.FileExists(s_FileName) Then&lt;BR&gt;            MySectorReader = ""&lt;BR&gt;            Exit Function&lt;BR&gt;        End If&lt;BR&gt;        If UCase(Right(s_FileName, 4)) &lt;&gt; ".MSG" Then&lt;BR&gt;            MySectorReader = ""&lt;BR&gt;            Exit Function&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        o_File = o_FSO.OpenTextFile(s_FileName, 1, -1)&lt;BR&gt;&lt;BR&gt;        ' Now read up to the sector&lt;BR&gt;        o_File.Skip((s_SID * s_SectSize) + s_SectSize)&lt;BR&gt;&lt;BR&gt;        ' Now read the sector itself&lt;BR&gt;        On Error Resume Next&lt;BR&gt;        MySectorReader = o_File.Read(s_SectSize)&lt;BR&gt;&lt;BR&gt;        o_File.Close()&lt;BR&gt;        o_File = Nothing&lt;BR&gt;        o_FSO = Nothing&lt;BR&gt;&lt;BR&gt;    End Function&lt;BR&gt;&lt;BR&gt;    Function MyShortSectorReader(ByVal s_ShortSectSize, ByVal s_SID, ByVal s_Size, ByVal a_SSAT, ByVal s_ShortSat)&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        ' Description : Reads a number of characters from the short sector container which&lt;BR&gt;        '               is held in the memory variable s_ShortSat. The a_SSAT is a directory&lt;BR&gt;        '               array which tell you how to access the s_ShortSat&lt;BR&gt;        ' Arguments   : &lt;s_ShortSectSize&gt;     The size of the sectors to be read&lt;BR&gt;        '               &lt;s_SID&gt;               The particluar sector to be read within s_ShortSat&lt;BR&gt;        '               &lt;s_Size&gt;              The size of the value to return&lt;BR&gt;        '               &lt;a_SSAT&gt;              The array which contains the details of how to&lt;BR&gt;        '                                     access the s_ShortSat&lt;BR&gt;        '               &lt;s_ShortSat&gt;          This is the short container stream read from&lt;BR&gt;        '                                     the file&lt;BR&gt;        ' Created     : 31/12/2005&lt;BR&gt;        ' Version     : 1.0&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        Dim M_Y&lt;BR&gt;        Dim s_Temp&lt;BR&gt;&lt;BR&gt;        M_Y = s_SID&lt;BR&gt;        s_Temp = Mid(s_ShortSat, s_SID * s_ShortSectSize + 1, s_ShortSectSize)&lt;BR&gt;&lt;BR&gt;        Do While True&lt;BR&gt;            M_Y = a_SSAT(M_Y)&lt;BR&gt;            If M_Y &gt; 0 Then&lt;BR&gt;                s_Temp = s_Temp &amp; Mid(s_ShortSat, M_Y * s_ShortSectSize + 1, s_ShortSectSize)&lt;BR&gt;            End If&lt;BR&gt;            If Len(s_Temp) &gt;= s_Size Then&lt;BR&gt;                Exit Do&lt;BR&gt;            End If&lt;BR&gt;        Loop&lt;BR&gt;        MyShortSectorReader = Mid(s_Temp, 1, s_Size)&lt;BR&gt;    End Function&lt;BR&gt;&lt;BR&gt;    Function MyLongSectorReader(ByVal s_ReturnType, ByVal s_SectSize, ByVal s_SID, ByVal s_Size, ByVal s_FileName, ByVal s_SAT)&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        ' Description : Reads a number of characters from the short sector container which&lt;BR&gt;        '               is held in the memory variable s_ShortSat. The a_SSAT is a directory&lt;BR&gt;        '               array which tell you how to access the s_ShortSat&lt;BR&gt;        ' Arguments   : &lt;&lt;BR&gt;        '               &lt;s_SectSize&gt;          The size of the sectors to be read&lt;BR&gt;        '               &lt;s_SID&gt;               The particluar sector to be read within s_ShortSat&lt;BR&gt;        '               &lt;s_Size&gt;              The size of the value to return&lt;BR&gt;        '               &lt;a_SSAT&gt;              The array which contains the details of how to&lt;BR&gt;        '                                     access the s_ShortSat&lt;BR&gt;        '               &lt;s_ShortSat&gt;          This is the short container stream read from&lt;BR&gt;        '                                     the file&lt;BR&gt;        ' Created     : 31/12/2005&lt;BR&gt;        ' Version     : 1.0&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        Dim M_Y&lt;BR&gt;        Dim s_Temp = Nothing&lt;BR&gt;        Dim o_FSO&lt;BR&gt;        Dim o_File&lt;BR&gt;        Dim M_X&lt;BR&gt;        Dim s_Start&lt;BR&gt;        Dim s_Previous&lt;BR&gt;        Dim s_Sects&lt;BR&gt;&lt;BR&gt;        M_X = s_Size&lt;BR&gt;        MyLongSectorReader = ""&lt;BR&gt;        If s_ReturnType = "FILE" Then&lt;BR&gt;&lt;BR&gt;            ' Create object and the file&lt;BR&gt;            o_FSO = My.Computer.FileSystem&lt;BR&gt;&lt;BR&gt;            s_Temp = o_FSO.GetSpecialFolder(2) &amp; "\" &amp; o_FSO.GetTempName&lt;BR&gt;            o_File = o_FSO.CreateTextFile(s_Temp, True, False)&lt;BR&gt;&lt;BR&gt;            M_Y = s_SID&lt;BR&gt;            o_File.Write(MySectorReader(s_SectSize, M_Y, s_FileName))&lt;BR&gt;            M_X = M_X - s_SectSize&lt;BR&gt;&lt;BR&gt;            s_Previous = -99&lt;BR&gt;            s_Sects = 0&lt;BR&gt;            s_Start = 0&lt;BR&gt;            Do While True&lt;BR&gt;&lt;BR&gt;                M_Y = MyVBNumber(Mid(s_SAT, (M_Y * 4) + 1, 4))&lt;BR&gt;&lt;BR&gt;                If s_Previous = M_Y - 1 Then&lt;BR&gt;&lt;BR&gt;                    s_Previous = M_Y&lt;BR&gt;                    s_Sects = s_Sects + 1&lt;BR&gt;&lt;BR&gt;                ElseIf s_Previous &lt;&gt; M_Y - 1 Then&lt;BR&gt;&lt;BR&gt;                    If s_Sects &gt; 0 Then&lt;BR&gt;&lt;BR&gt;                        M_X = M_X - (s_SectSize * s_Sects)&lt;BR&gt;                        o_File.Write(MyMultiSectorReader(s_SectSize, s_Start, s_FileName, s_Sects))&lt;BR&gt;&lt;BR&gt;                    End If&lt;BR&gt;&lt;BR&gt;                    s_Previous = M_Y&lt;BR&gt;                    s_Sects = 1&lt;BR&gt;                    s_Start = M_Y&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If M_X &lt;= 0 Then&lt;BR&gt;                    Exit Do&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            Loop&lt;BR&gt;&lt;BR&gt;            o_File.Close()&lt;BR&gt;&lt;BR&gt;        ElseIf s_ReturnType = "VARIABLE" Then&lt;BR&gt;&lt;BR&gt;            M_Y = s_SID&lt;BR&gt;            s_Temp = MySectorReader(s_SectSize, M_Y, s_FileName)&lt;BR&gt;&lt;BR&gt;            Do While True&lt;BR&gt;&lt;BR&gt;                M_Y = MyVBNumber(Mid(s_SAT, (M_Y * 4) + 1, 4))&lt;BR&gt;                If M_Y &gt; 0 Then&lt;BR&gt;                    s_Temp = s_Temp &amp; MySectorReader(s_SectSize, M_Y, s_FileName)&lt;BR&gt;                End If&lt;BR&gt;                If Len(s_Temp) &gt;= s_Size Then&lt;BR&gt;                    Exit Do&lt;BR&gt;                End If&lt;BR&gt;            Loop&lt;BR&gt;&lt;BR&gt;            s_Temp = Mid(s_Temp, 1, s_Size)&lt;BR&gt;&lt;BR&gt;        End If&lt;BR&gt;        MyLongSectorReader = s_Temp&lt;BR&gt;    End Function&lt;BR&gt;&lt;BR&gt;    Function MyMultiSectorReader(ByVal s_SectSize, ByVal s_SID, ByVal s_FileName, ByVal s_Number)&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        ' Description : Reads a number of characters from a particular sector in a file&lt;BR&gt;        ' Arguments   : &lt;s_SectSize&gt;     The size of the sectors to be read&lt;BR&gt;        '               &lt;s_SID&gt;          The particluar sector to be read&lt;BR&gt;        '               &lt;s_FileName&gt;     The filename which they are to be read from&lt;BR&gt;        '               &lt;s_Number&gt;       The number of sectors to read&lt;BR&gt;        ' Created     : 01/01/2006&lt;BR&gt;        ' Version     : 1.0&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        Dim o_FSO&lt;BR&gt;        Dim o_File&lt;BR&gt;&lt;BR&gt;        ' Create object and get the file&lt;BR&gt;        o_FSO = My.Computer.FileSystem&lt;BR&gt;&lt;BR&gt;        If Not o_FSO.FileExists(s_FileName) Then&lt;BR&gt;            MyMultiSectorReader = ""&lt;BR&gt;            Exit Function&lt;BR&gt;        End If&lt;BR&gt;        If UCase(Right(s_FileName, 4)) &lt;&gt; ".MSG" Then&lt;BR&gt;            MyMultiSectorReader = ""&lt;BR&gt;            Exit Function&lt;BR&gt;        End If&lt;BR&gt;&lt;BR&gt;        o_File = o_FSO.OpenTextFile(s_FileName, 1, -1)&lt;BR&gt;&lt;BR&gt;        ' Now read up to the sector&lt;BR&gt;        o_File.Skip((s_SID * s_SectSize) + s_SectSize)&lt;BR&gt;&lt;BR&gt;        ' Now read the sector itself&lt;BR&gt;        On Error Resume Next&lt;BR&gt;        MyMultiSectorReader = o_File.Read(s_SectSize * s_Number)&lt;BR&gt;&lt;BR&gt;        o_File.Close()&lt;BR&gt;        o_File = Nothing&lt;BR&gt;        o_FSO = Nothing&lt;BR&gt;    End Function&lt;BR&gt;&lt;BR&gt;    Function MyGregorianDate(ByVal l_Val)&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        ' Description : Returns a date from a property tag in Outlook properties&lt;BR&gt;        ' Arguments   : &lt;l_Val&gt;     The VB number to convert&lt;BR&gt;        ' Created     : 03/02/2007&lt;BR&gt;        ' Version     : 1.0&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        Dim l_FracSecs&lt;BR&gt;        Dim l_RemSecs&lt;BR&gt;        Dim l_Secs&lt;BR&gt;        Dim l_RemMins&lt;BR&gt;        Dim l_Mins&lt;BR&gt;        Dim l_RemHours&lt;BR&gt;        Dim l_Hours&lt;BR&gt;        Dim l_RemDays&lt;BR&gt;        Dim l_Year&lt;BR&gt;        Dim l_RemDays2&lt;BR&gt;&lt;BR&gt;        l_FracSecs = ((l_Val / 10000000) - Int(l_Val / 10000000)) * 10000000&lt;BR&gt;        l_RemSecs = l_Val / 10000000&lt;BR&gt;        l_Secs = Math.Round(((l_RemSecs / 60) - Int(l_RemSecs / 60)) * 60, 0)&lt;BR&gt;        l_RemMins = Int(l_RemSecs / 60)&lt;BR&gt;        l_Mins = Math.Round(((l_RemMins / 60) - Int(l_RemMins / 60)) * 60, 0)&lt;BR&gt;        l_RemHours = Int(l_RemMins / 60)&lt;BR&gt;        l_Hours = Math.Round(((l_RemHours / 24) - Int(l_RemHours / 24)) * 24, 0)&lt;BR&gt;        l_RemDays = Int(l_RemHours / 24)&lt;BR&gt;        l_Year = 1601 + Int(l_RemDays / 365)&lt;BR&gt;        'l_RemDays2 = 109572 + DateSerial(l_Year, 1, 1) - DateSerial(1901, 1, 1)&lt;BR&gt;        'MyGregorianDate = DateAdd("d", l_RemDays - l_RemDays2, "01/01/" &amp; l_Year)&lt;BR&gt;        'MyGregorianDate = DateAdd("h", l_Hours, MyGregorianDate)&lt;BR&gt;        'MyGregorianDate = DateAdd("n", l_Mins, MyGregorianDate)&lt;BR&gt;        'MyGregorianDate = DateAdd("s", l_Secs, MyGregorianDate)&lt;BR&gt;&lt;BR&gt;        If Year(MyGregorianDate) &lt; 1902 Then&lt;BR&gt;            MyGregorianDate = ""&lt;BR&gt;        End If&lt;BR&gt;    End Function&lt;BR&gt;&lt;BR&gt;    Function MySubRead(ByVal l_Left, ByVal l_Right, ByVal a_Dir, ByVal a_Temp)&lt;BR&gt;        MySubRead = Nothing&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        ' Description : Reads a directory structure backwards and forwards&lt;BR&gt;        ' Arguments   : &lt;l_Val&gt;     The directory entry&lt;BR&gt;        ' Created     : 23/02/2007&lt;BR&gt;        ' Version     : 1.0&lt;BR&gt;        ' **********************************************************************************&lt;BR&gt;        Dim M_X&lt;BR&gt;&lt;BR&gt;        For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;            If a_Dir(0, M_X) = l_Left Then&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;                If a_Dir(3, M_X) &lt;&gt; -1 Then&lt;BR&gt;                    MySubRead(a_Dir(3, M_X), -1, a_Dir, a_Temp)&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If a_Dir(5, M_X) = -1 Then&lt;BR&gt;&lt;BR&gt;                    ' Add to final array&lt;BR&gt;                    ReDim Preserve a_Temp(8, MyArrayLen(a_Temp, 2) + 1)&lt;BR&gt;&lt;BR&gt;                    a_Temp(0, MyArrayLen(a_Temp, 2) - 1) = a_Dir(0, M_X)&lt;BR&gt;                    a_Temp(1, MyArrayLen(a_Temp, 2) - 1) = a_Dir(1, M_X)&lt;BR&gt;                    a_Temp(2, MyArrayLen(a_Temp, 2) - 1) = a_Dir(2, M_X)&lt;BR&gt;                    a_Temp(3, MyArrayLen(a_Temp, 2) - 1) = a_Dir(3, M_X)&lt;BR&gt;                    a_Temp(4, MyArrayLen(a_Temp, 2) - 1) = a_Dir(4, M_X)&lt;BR&gt;                    a_Temp(5, MyArrayLen(a_Temp, 2) - 1) = a_Dir(5, M_X)&lt;BR&gt;                    a_Temp(6, MyArrayLen(a_Temp, 2) - 1) = a_Dir(6, M_X)&lt;BR&gt;                    a_Temp(7, MyArrayLen(a_Temp, 2) - 1) = a_Dir(7, M_X)&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            End If&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;        Next&lt;BR&gt;&lt;BR&gt;        For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;            If a_Dir(0, M_X) = l_Left Then&lt;BR&gt;&lt;BR&gt;                If a_Dir(4, M_X) &lt;&gt; -1 Then&lt;BR&gt;                    MySubRead(-1, a_Dir(4, M_X), a_Dir, a_Temp)&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            End If&lt;BR&gt;&lt;BR&gt;        Next&lt;BR&gt;&lt;BR&gt;        For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;            If a_Dir(0, M_X) = l_Right Then&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;                If a_Dir(3, M_X) &lt;&gt; -1 Then&lt;BR&gt;                    MySubRead(a_Dir(3, M_X), -1, a_Dir, a_Temp)&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;                If a_Dir(5, M_X) = -1 Then&lt;BR&gt;                    ' Add to final array&lt;BR&gt;                    ReDim Preserve a_Temp(8, MyArrayLen(a_Temp, 2) + 1)&lt;BR&gt;&lt;BR&gt;                    a_Temp(0, MyArrayLen(a_Temp, 2) - 1) = a_Dir(0, M_X)&lt;BR&gt;                    a_Temp(1, MyArrayLen(a_Temp, 2) - 1) = a_Dir(1, M_X)&lt;BR&gt;                    a_Temp(2, MyArrayLen(a_Temp, 2) - 1) = a_Dir(2, M_X)&lt;BR&gt;                    a_Temp(3, MyArrayLen(a_Temp, 2) - 1) = a_Dir(3, M_X)&lt;BR&gt;                    a_Temp(4, MyArrayLen(a_Temp, 2) - 1) = a_Dir(4, M_X)&lt;BR&gt;                    a_Temp(5, MyArrayLen(a_Temp, 2) - 1) = a_Dir(5, M_X)&lt;BR&gt;                    a_Temp(6, MyArrayLen(a_Temp, 2) - 1) = a_Dir(6, M_X)&lt;BR&gt;                    a_Temp(7, MyArrayLen(a_Temp, 2) - 1) = a_Dir(7, M_X)&lt;BR&gt;&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            End If&lt;BR&gt;&lt;BR&gt;        Next&lt;BR&gt;&lt;BR&gt;        For M_X = 0 To MyArrayLen(a_Dir, 2) - 1&lt;BR&gt;&lt;BR&gt;            If a_Dir(0, M_X) = l_Right Then&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;                If a_Dir(4, M_X) &lt;&gt; -1 Then&lt;BR&gt;                    MySubRead(-1, a_Dir(4, M_X), a_Dir, a_Temp)&lt;BR&gt;                End If&lt;BR&gt;&lt;BR&gt;            End If&lt;BR&gt;&lt;BR&gt;        Next&lt;BR&gt;    End Function&lt;BR&gt;End Module&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/bloghelper&gt;?&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src ="http://blog.shareoffice.it/giannigiaccaglini/aggbug/10244.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><h1 style="MARGIN: 24pt 0cm 0pt"><font color="#365f91" size="5" face="Cambria">Ricerca filtrata di mail: richiesta a chi-sa-parli</font></h1>
<p style="MARGIN-BOTTOM: 12pt"><span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">Un certo <b style="mso-bidi-font-weight: normal">Lorenzo Pedrinolli </b></span><span style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt">mi ha sottoposto un problema, al quale onestamente non trovo soluzione per mancanza di tempo (o incompetenza? Ebbene sì...). Tuttavia ritengo che la cosa sia di grande interesse per molti, me incluso, tanto più che il buon Lorenzo <u>fornisce pure una complessa routine</u> attinta dal Web, <u>che ahimè sul suo PC malfunziona, ma fusse che fusse che un erroraccio banale è alla base del dramma?</u><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P style="MARGIN-BOTTOM: 12pt"><SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt">Che fare? Pensa e ripensa ho creduto utile pubblicare la richiesta del sullodato Pedrinolli, nella speranza che qualche anima buona ed esperta sappia aiutarlo. In tal caso siete pregati di rivolgersi al sottoscritto <U>solo in caso di soluzioni valide, altrimenti indirizzate soltanto al sullodato:<o:p></o:p></U></SPAN></P>
<P style="TEXT-ALIGN: center; MARGIN-BOTTOM: 12pt" align=center><B style="mso-bidi-font-weight: normal"><A href="mailto:lorenzo.pedrinolli@gmail.com">lorenzo.pedrinolli@gmail.com</A><o:p></o:p></B></P>
<DIV style="BORDER-BOTTOM: windowtext 1.5pt solid; BORDER-LEFT: medium none; PADDING-BOTTOM: 1pt; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-element: para-border-div">
<P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; MARGIN-BOTTOM: 12pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-padding-alt: 0cm 0cm 1.0pt 0cm; mso-border-bottom-alt: solid windowtext 1.5pt"><SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt">Ma ecco la missiva in questione, che al termine riporta la routine che delude. <U>Ovviamente sono gradite anche soluzioni diverse da quella-che-delude</U></SPAN>.</P>
<P style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; MARGIN-BOTTOM: 12pt; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm; mso-padding-alt: 0cm 0cm 1.0pt 0cm; mso-border-bottom-alt: solid windowtext 1.5pt"><SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt"><o:p> </o:p></SPAN></P></DIV>
<P style="MARGIN-BOTTOM: 12pt"><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">Salve Gianni,<o:p></o:p></SPAN></P>
<P style="MARGIN-BOTTOM: 12pt"><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">Il mio datore di lavoro, per mia disgrazia, mi ha promosso programmatore solo perch&#233; me la cavo con Visual Basic e SQL. Sono incappato nel suo sito alla disperata ricerca di una soluzione per esportare le mail da Outlook con una procedura quanto pi&#249; automatica possibile e, facendole i complimenti [<I style="mso-bidi-font-style: normal">non c&#8217;&#232; di che &#8211; G.G. </I>], ho trovato tutto quello che mi serviva. Ora per&#242; &#232; nato il problema opposto: da 50 - 100 mail che dovevano essere archiviate siamo passati a 4 - 5000 in poco pi&#249; di due mesi e, ovviamente, mi &#232; stato chiesto un programma per ricercarle in base ad attributi vari: corpo, destinatario, mittente ecc.<o:p></o:p></SPAN></P>
<P style="MARGIN-BOTTOM: 12pt"><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">Ora non sono in grado di trovare un modo per leggere le propriet&#224; di un file *.msg presente sul disco ne tantomeno di far riconoscere a vb che quel file &#232; un messaggio.<o:p></o:p></SPAN></P>
<P style="MARGIN-BOTTOM: 12pt"><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">L'unica soluzione che ho trovato &#232; una script (che riporto qui sotto). A detta dell'autore dovrebbe leggere queste propriet&#224; senza far ricorso ad oggetti esterni... peccato che non riconosca i file msg presenti sul mio pc e che vada in ciclo senza fine una volta s&#236; e l'altra pure.<o:p></o:p></SPAN></P>
<P style="MARGIN-BOTTOM: 12pt"><SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt">Confidando che riesca a trovare 10 minuti per aiutarmi [<I style="mso-bidi-font-style: normal">altro che dieci minuti! </I></SPAN><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US" lang=EN-US>Ce ne vorrebbero molti di pi&#249;! Io non li ho ma qualcun altro ? </SPAN></I><I style="mso-bidi-font-style: normal"><SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt">G.G.</SPAN></I><SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt">] le porgo saluti e rinnovati ringraziamenti <SPAN style="mso-spacerun: yes"> </SPAN>per avermi salvato in varie occasioni.<o:p></o:p></SPAN></P>
<P style="MARGIN-BOTTOM: 12pt"><SPAN class=Titolo2Carattere><SPAN style="FONT-SIZE: 13pt; mso-ansi-language: EN-US; mso-fareast-font-family: Calibri" lang=EN-US><STRONG><FONT color=#4f81bd><FONT face=Cambria>La routine deludente<o:p></o:p></FONT></FONT></STRONG></SPAN></SPAN></P>
<P style="MARGIN-BOTTOM: 12pt"><SPAN class=Titolo2Carattere><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: windowtext; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">Viene</SPAN></SPAN><SPAN class=Titolo2Carattere><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 13.0pt; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"><STRONG><FONT color=#4f81bd> </FONT></STRONG></SPAN></SPAN><SPAN class=Titolo2Carattere><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: windowtext; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">qui sotto</SPAN></SPAN><SPAN class=Titolo2Carattere><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"><FONT color=#4f81bd> </FONT><FONT color=#000000>riportata </FONT></SPAN></SPAN><FONT color=#000000><SPAN class=Titolo2Carattere><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: windowtext; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">senza </SPAN></SPAN><SPAN class=Titolo2Carattere><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">altri </SPAN></SPAN><SPAN class=Titolo2Carattere><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: windowtext; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin">commenti</SPAN></SPAN><SPAN class=Titolo2Carattere><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"> se non quelli incorporate [<I style="mso-bidi-font-style: normal">e sperando che gli esperti cui si rivolge la richiesta di aiuto se la cavino in tale guazzabuglio. </I></SPAN></SPAN><SPAN class=Titolo2Carattere><I style="mso-bidi-font-style: normal"><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-ansi-language: EN-US; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin" lang=EN-US>G.G. </SPAN></I></SPAN><SPAN class=Titolo2Carattere><SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; FONT-WEIGHT: normal; mso-bidi-font-size: 13.0pt; mso-bidi-font-weight: bold; mso-ansi-language: EN-US; mso-fareast-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin" lang=EN-US>]</SPAN></SPAN></FONT><SPAN style="FONT-SIZE: 11pt; mso-bidi-font-size: 12.0pt; mso-ansi-language: EN-US" lang=EN-US><BR></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US></SPAN></P>
<P style="MARGIN-BOTTOM: 12pt"><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>Option Explicit On<BR>Module Prova<BR><BR><BR>    'MsgBox MsgGet("DateSent,ReplyType,DateReply,RecipientsBCC,RecipientsTo,RecipientsCC,From,Prefix,MessageID,Subject,DateSent,DateReceived,AttachmentNumbers,AttachmentExtract,AttachmentNames,Recipients","temp.MSG")<BR><BR><BR>    Function MsgGet(ByVal s_Val, ByVal s_fileName)<BR><BR>        ' **********************************************************************************<BR>        '                            Outlook MSG Reading Utility<BR>        '                                Sean Currie @2005<BR>        '<BR>        ' Description : Decodes an Outlook MSG file by reading the Compound Binary File<BR>        '               format directly. Note most of the details on the compound binary<BR>        '               file format derived from </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"><A href="http://www.openoffice.org/" target=_blank><SPAN style="mso-ansi-language: EN-US" lang=EN-US>www.openoffice.org</SPAN></A></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><BR>        '               It DOES NOT require Outlook to be installed on the client machine<BR>        '               nor does it require access to any libraries or third party DLL's<BR>        ' Arguments   : <s_Val> The value or values to return (each separated by a comma)<BR>        '                       e.g.<BR>        '                       Subject            - The subject of the email<BR>        '                       Prefix          - The subject prefix of the email<BR>        '                       MessageID               - The Message ID<BR>        '                       From             - The from address or name whichever<BR>        '                                                 available<BR>        '                       Body                    - The Message Body<BR>        '                       AttachmentNumbers    - The number of attachments<BR>        '                       AttachmentNames        - The names of the attachments<BR>        '                                                 (multiple values separated by a |)<BR>        '                       Recipients        - All of the recipient addresses or name whichever<BR>        '                                                 available (multiple values<BR>        '                                                 separated by a |)<BR>        '                                                 includes TO, CC and BCC<BR>        '                       RecipientsTo        - All the TO addresses or name whichever<BR>        '                                                 available (multiple values<BR>        '                                                 separated by a |)<BR>        '                       RecipientsCC        - All the CC addresses or name whichever<BR>        '                                                 available (multiple values<BR>        '                                                 separated by a |)<BR>        '                       RecipientsBCC        - All the BCC addresses or name whichever<BR>        '                                                 available (multiple values<BR>        '                                                 separated by a |)<BR>        '                       AttachmentExtract    - The attachments are extracted to<BR>        '                                                 a temporary folder and the names<BR>        '                                                 returned to the user<BR>        '                                                 (multiple values spearated by a |)<BR>        '                       DateSent                - The date sent of the email (may not<BR>        '                                                 have been sent if in drafts)<BR>        '                       DateReceived            - The date received if the email has<BR>        '                                                 been received<BR>        '                       DateReply               - Date reply requested in follow up<BR>        '                       ReplyType               - Reply type (Follow up type)<BR>        '                       <BR>        '                       Each value is separated by a ^ and each sub value by a |<BR>        '                       For example:<BR>        '                         asking for Recipients could return<BR>        '                         </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"><A href="mailto:sean.currie@poboxes.com" target=_blank><SPAN style="mso-ansi-language: EN-US" lang=EN-US>sean.currie@poboxes.com</SPAN></A></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>|</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"><A href="mailto:nuala.currie@poboxes.com" target=_blank><SPAN style="mso-ansi-language: EN-US" lang=EN-US>nuala.currie@poboxes.com</SPAN></A></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><BR>        '                         You could then use Split to create an array<BR>        '                       For example:<BR>        '                         asking for "Recipients,From" could return<BR>        '                         </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"><A href="mailto:sean.currie@poboxes.com" target=_blank><SPAN style="mso-ansi-language: EN-US" lang=EN-US>sean.currie@poboxes.com</SPAN></A></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>|</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"><A href="mailto:nuala.currie@poboxes.com" target=_blank><SPAN style="mso-ansi-language: EN-US" lang=EN-US>nuala.currie@poboxes.com</SPAN></A></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US>^</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt"><A href="mailto:anyone@internet.com" target=_blank><SPAN style="mso-ansi-language: EN-US" lang=EN-US>anyone@internet.com</SPAN></A></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 9pt; mso-ansi-language: EN-US" lang=EN-US><BR>        '                         You could then use Split with ^ to create two arrays<BR>        '                         One of recipients and one of froms<BR>        '                         Then you could use Split again to get a list of the Recipients<BR>        '<BR>        'Examples     : Extract just the subject<BR>        '               MsgBox MsgGet("Subject","test.msg")<BR>        '<BR>        '               Extract multiple fields there we extract the Subject and the From address<BR>        '               MsgBox MsgGet("Subject,From","test2.msg")<BR>        '<BR>        '               Extract the subject, extract the attachments to the temporary folder and<BR>        '               return the names of the attachments<BR>        '               MsgBox MsgGet("Subject,AttachmentExtract","shortcut.msg")<BR>        '<BR>        ' Created     : 24/12/2005<BR>        ' Version     : 1.0<BR>        '<BR>        ' Description : Modified the way attachments are decoded using a new feature I call<BR>        '               the MultiSectorReader, this speeds up sector decoding by reading<BR>        '               sequential sectors in one go thereby speeding up the read process for<BR>        '               big emails<BR>        ' Modified    : 02/01/2006<BR>        ' Version     : 1.1<BR>        '<BR>        ' Description : Found failure when number of bytes to read for a sector was zero added<BR>        '               code to check for zero sectors<BR>        ' Modified    : 28/01/2007<BR>        ' Version     : 1.2<BR>        '<BR>        ' Description : Major rewrite to reflect use of OutlookSpy to determine ID's of fields<BR>        '               Now accurately reports submit time and received time (previously searched<BR>        '               headers, now uses proper MAPI properties to get them).<BR>        '               Now also report recipients more accurately and can now separate TO, CC and<BR>        '               BCC.<BR>        '               Removed receivedby as didn't think it would ever be used.<BR>        '               Added support to determine follow up date of email (reply by field)<BR>        '               Now also correctly builds the directory from the array<BR>        ' Modified    : 23/02/2007<BR>        ' Version     : 2.0<BR>        ' **********************************************************************************<BR><BR>        Dim o_FSO               ' File system object<BR>        Dim o_File               ' The input MSG file<BR>        Dim s_String           ' Temporary string<BR>        Dim s_Temp               ' Temporary variable<BR>        Dim s_SectSize           ' Sector size<BR>        Dim s_ShortSectSize       ' Short sector size<BR>        Dim s_SectSAT           ' No of SAT sectors<BR>        Dim s_DIRSID           ' First SID of directory<BR>        Dim s_MinStream           ' Minimum size of standard stream<BR>        Dim s_SIDSSAT           ' SID of the SSAT<BR>        Dim s_SSATNumber       ' Number of SSAT sectors<BR>        Dim s_SAT               ' The array of SAT entries<BR>        Dim s_MSATSID           ' First sector of MSAT<BR>        Dim s_SectMSAT           ' No of MSAT sectors<BR>        Dim a_Temp(0, 0)        ' The array of temporary entries<BR>        Dim a_Dir(0, 0)                ' The array of directory entries<BR>        Dim a_MSAT()           ' The array of MSAT entries<BR>        Dim a_SSAT()           ' The array of SSAT entries<BR>        Dim M_W                   ' Temporary Counter<BR>        Dim M_X                   ' Temporary Counter<BR>        Dim M_Y                   ' Temporary Counter<BR>        Dim M_Z                   ' Temporary Counter<BR>        Dim s_ShortSat           ' The short sector container stream<BR>        Dim s_ShortStart       ' The short sector SAT data<BR>        Dim s_ShortSize           ' The short sector SAT data<BR>        Dim a_Val               ' Array of s_Val awaiting return values<BR>        Dim b_Debug               ' Set this variable to True to create TXT files in the<BR>        ' current directory to see what is being read from the<BR>        ' MSG file<BR>        Dim s_Return           ' The returned string<BR>        Dim s_MessageID           ' The message ID<BR>        Dim s_Subject           ' The message subject<BR>        Dim s_From               ' The message from address<BR>        Dim s_Prefix           ' The message subject prefix<BR>        Dim s_Body               ' The message body<BR>        Dim s_AttachNums       ' The message attachment numbers<BR>        Dim a_AttachNames()       ' The message attachment names<BR>        Dim a_Recipients()       ' The message recipients (To, CC and BCC)<BR>        Dim a_RecipientsTo()   ' The message recipients in the TO list<BR>        Dim a_RecipientsCC()   ' The message recipients in the CC list<BR>        Dim a_RecipientsBCC()  ' The message recipients in the BCC list<BR>        Dim a_Attachments()       ' The message attachments names on disk<BR>        Dim a_Attachments2()   ' The message attachments names<BR>        Dim s_DateSent           ' The message date was sent<BR>        Dim s_DateReceived       ' The message date was received<BR>        Dim s_DateReply           ' The message date of reply (also known as follow up date)<BR>        Dim s_ReplyType           ' The message follow up type<BR><BR>        ' Create object and get the file<BR>        o_FSO = My.Computer.FileSystem<BR><BR>        If Not o_FSO.FileExists(s_fileName) Then<BR>            MsgGet = "Error: File does not exist!"<BR>            Exit Function<BR>        End If<BR>        If UCase(Right(s_fileName, 4)) <> ".MSG" Then<BR>            MsgGet = "Error: Not an MSG file!"<BR>            Exit Function<BR>        End If<BR><BR>        o_File = My.Computer.FileSystem.ReadAllText(s_fileName)<BR><BR>        ' Check that right hand of s_Val has comma<BR>        If Right(s_Val, 1) <> "," Then<BR>            s_Val = s_Val & ","<BR>        End If<BR>        s_Val = UCase(s_Val)<BR><BR>        ' Set the return variables to nothing<BR>        MsgGet = ""<BR>        s_ShortSat = ""<BR>        s_Return = ""<BR>        s_Subject = ""<BR>        s_MessageID = ""<BR>        s_From = ""<BR>        s_Prefix = ""<BR>        s_Body = ""<BR>        s_AttachNums = 0<BR>        b_Debug = True<BR>        s_DateSent = ""<BR>        s_DateReceived = ""<BR>        s_DateReply = ""<BR>        s_ReplyType = ""<BR><BR>        ' Read header characters<BR>        s_String = o_File.Read(8)<BR><BR>        ' Check its a compound file<BR>        If s_String <> MyHexToHexCoded("D0CF11E0A1B11AE1") Then<BR>            MsgGet = "Error: Not an MSG file!"<BR>            Exit Function<BR>        End If<BR><BR>        ' Read 16 chars unique identifier with revision<BR>        s_String = o_File.Read(20)<BR><BR>        ' Read 2 chars of byte identifier<BR>        s_String = o_File.Read(2)<BR><BR>        If s_String <> MyHexToHexCoded("FEFF") Then<BR>            MsgGet = "Error: Not an MSG file!"<BR>            Exit Function<BR>        End If<BR><BR>        ' Read 2 chars of sector size<BR>        s_String = o_File.Read(2)<BR><BR>        ' Convert to number and power of 2<BR>        s_SectSize = 2 ^ MyVBNumber(s_String)<BR><BR>        ' Read 2 chars of short sector size<BR>        s_String = o_File.Read(2)<BR><BR>        ' Convert to number and power of 2<BR>        s_ShortSectSize = 2 ^ MyVBNumber(s_String)<BR><BR>        ' Read 10 chars of invalid data<BR>        s_String = o_File.Read(10)<BR><BR>        ' Read 4 chars of sectors in SAT<BR>        s_String = o_File.Read(4)<BR><BR>        ' Convert to number<BR>        s_SectSAT = MyVBNumber(s_String)<BR><BR>        ' Read 4 chars of first DIR SID<BR>        s_String = o_File.Read(4)<BR><BR>        ' Convert to number<BR>        s_DIRSID = MyVBNumber(s_String)<BR><BR>        ' Read 4 chars of invalid data<BR>        s_String = o_File.Read(4)<BR><BR>        ' Read 4 chars of min stream size<BR>        s_String = o_File.Read(4)<BR><BR>        ' Convert to number<BR>        s_MinStream = MyVBNumber(s_String)<BR><BR>        ' Read 4 chars of SID of the SSAT<BR>        s_String = o_File.Read(4)<BR><BR>        ' Convert to number<BR>        s_SIDSSAT = MyVBNumber(s_String)<BR><BR>        ' Read 4 chars of number of SSAT sectors<BR>        s_String = o_File.Read(4)<BR><BR>        ' Convert to number<BR>        s_SSATNumber = MyVBNumber(s_String)<BR><BR>        ' Read 4 chars of MSAT SID<BR>        s_String = o_File.Read(4)<BR><BR>        ' Convert to number<BR>        s_MSATSID = MyVBNumber(s_String)<BR><BR>        ' Read 4 chars of number of sectors in MSAT<BR>        s_String = o_File.Read(4)<BR><BR>        ' Convert to number<BR>        s_SectMSAT = MyVBNumber(s_String)<BR><BR>        ' Now read the first 109 entries in the MSAT<BR>        For M_X = 1 To 109<BR><BR>            ' Read 4 chars of MSAT sector IDs<BR>            s_String = o_File.Read(4)<BR><BR>            If MyVBNumber(s_String) >= 0 Then<BR><BR>                ReDim Preserve a_MSAT(MyArrayLen(a_MSAT, 1) + 1)<BR><BR>                a_MSAT(MyArrayLen(a_MSAT, 1) - 1) = MyVBNumber(s_String)<BR><BR>            End If<BR><BR>        Next<BR><BR>        o_File.Close()<BR><BR>        ' The header has now been read<BR>        ' We now know quite a few things<BR>        ' - The total number of sectors in the MSAT<BR>        ' - The first sector of the MSAT to start reading it<BR>        ' We can now read the MSAT and from there we can read everything<BR><BR>        ' Do we need to read the MSAT if it is more than 109 entries?<BR>        If s_MSATSID <> -2 Then<BR><BR>            M_Y = s_MSATSID<BR><BR>            ' Lets loop through the MSAT<BR>            Do While M_Y >= 0<BR><BR>                s_Temp = MySectorReader(s_SectSize, M_Y, s_fileName)<BR><BR>                For M_X = 1 To s_SectSize - 4 Step 4<BR><BR>                    s_String = Mid(s_Temp, M_X, 4)<BR><BR>                    If MyVBNumber(s_String) > 0 Then<BR><BR>                        ReDim Preserve a_MSAT(MyArrayLen(a_MSAT, 1) + 1)<BR><BR>                        a_MSAT(MyArrayLen(a_MSAT, 1) - 1) = MyVBNumber(s_String)<BR><BR>                    End If<BR>                Next<BR><BR>                s_String = Right(s_Temp, 4)<BR>                If MyVBNumber(s_String) > 0 Then<BR>                    M_Y = MyVBNumber(s_String)<BR>                Else<BR>                    M_Y = -2<BR>                End If<BR><BR>            Loop<BR>        End If<BR><BR>        ' Temporary debug routine to write out the MSAT<BR>        If b_Debug Then<BR>            o_File = o_FSO.CreateTextFile("MSAT.TXT")<BR>            For M_X = 0 To MyArrayLen(a_MSAT, 1) - 1<BR>                o_File.WriteLine("---" & a_MSAT(M_X))<BR>            Next<BR>            o_File.Close()<BR>        End If<BR><BR>        ' We now have the MSAT hence we can now build the SAT from this<BR>        s_SAT = ""<BR><BR>        For M_Y = 0 To (MyArrayLen(a_MSAT, 1) - 1)<BR><BR>            s_SAT = s_SAT & MySectorReader(s_SectSize, a_MSAT(M_Y), s_fileName)<BR><BR>        Next<BR><BR>        ' Temporary debug routine to write out the SAT<BR>        If b_Debug Then<BR>            o_File = o_FSO.CreateTextFile("SAT.TXT")<BR>            o_File.WriteLine("Sector" & Chr(9) & " : " & "Value")<BR>            For M_X = 1 To Len(s_SAT) Step 4<BR>                o_File.WriteLine(Int(M_X / 4) & Chr(9) & " : " & MyVBNumber(Mid(s_SAT, M_X, 4)))<BR>            Next<BR>            o_File.Close()<BR>        End If<BR><BR>        ' Now we can read the Short Sector SSAT<BR>        If s_SIDSSAT <> -2 Then<BR><BR>            M_Y = s_SIDSSAT<BR>            s_Temp = MySectorReader(s_SectSize, M_Y, s_fileName)<BR><BR>            For M_X = 1 To s_SectSize Step 4<BR><BR>                s_String = Mid(s_Temp, M_X, 4)<BR><BR>                ReDim Preserve a_SSAT(MyArrayLen(a_SSAT, 1) + 1)<BR>                a_SSAT(MyArrayLen(a_SSAT, 1) - 1) = MyVBNumber(s_String)<BR><BR>            Next<BR><BR>            M_Z = 1<BR>            Do While True<BR>                M_Y = MyVBNumber(Mid(s_SAT, (M_Y * 4) + 1, 4))<BR>                If M_Y > 0 Then<BR>                    M_Z = M_Z + 1<BR>                    s_Temp = MySectorReader(s_SectSize, M_Y, s_fileName)<BR>                    For M_X = 1 To s_SectSize Step 4<BR>                        s_String = Mid(s_Temp, M_X, 4)<BR><BR>                        ReDim Preserve a_SSAT(MyArrayLen(a_SSAT, 1) + 1)<BR><BR>                        a_SSAT(MyArrayLen(a_SSAT, 1) - 1) = MyVBNumber(s_String)<BR>                    Next<BR>                End If<BR>                If M_Z = s_SSATNumber Then<BR>                    Exit Do<BR>                End If<BR>            Loop<BR><BR>        End If<BR><BR>        ' Temporary debug routine to write out the SSAT<BR>        If b_Debug Then<BR>            o_File = o_FSO.CreateTextFile("SSAT.TXT")<BR>            For M_X = 0 To MyArrayLen(a_SSAT, 1) - 1<BR>                o_File.WriteLine(M_X & Chr(9) & " : " & a_SSAT(M_X))<BR>            Next<BR>            o_File.Close()<BR>        End If<BR><BR>        ' Finally lets read the directory<BR>        M_Y = s_DIRSID<BR><BR>        ' Lets loop through the DIRECTORY<BR>        M_Z = -1<BR>        Do While M_Y >= 0<BR><BR>            s_Temp = MySectorReader(s_SectSize, M_Y, s_fileName)<BR><BR><BR>            For M_X = 1 To s_SectSize Step 128<BR><BR>                M_Z = M_Z + 1<BR><BR>                ' First lets check the type of the directory entry and if zero it is unused<BR>                If MyVBNumber(Mid(s_Temp, M_X + 66, 1)) <> 0 Then<BR><BR><BR>                    If MyArrayLen(a_Dir, 2) = 0 Then<BR>                        ReDim Preserve a_Dir(8, 1)<BR>                    Else<BR>                        ReDim Preserve a_Dir(8, MyArrayLen(a_Dir, 2) + 1)<BR>                    End If<BR><BR>                    ' Format of the array<BR>                    ' 0 - DID<BR>                    ' 1 - Name <BR>                    ' 2 - Type<BR>                    ' 3 - DID Left Child<BR>                    ' 4 - DID Right Child<BR>                    ' 5 - DID root node<BR>                    ' 6 - SID of first sector<BR>                    ' 7 - Stream size<BR><BR>                    a_Dir(0, MyArrayLen(a_Dir, 2) - 1) = M_Z<BR>                    a_Dir(1, MyArrayLen(a_Dir, 2) - 1) = Replace(Mid(s_Temp, M_X, MyVBNumber(Mid(s_Temp, M_X + 64, 2))), Chr(0), "")<BR>                    a_Dir(2, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 66, 1))<BR>                    a_Dir(3, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 68, 4))<BR>                    a_Dir(4, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 72, 4))<BR>                    a_Dir(5, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 76, 4))<BR>                    a_Dir(6, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 116, 4))<BR>                    a_Dir(7, MyArrayLen(a_Dir, 2) - 1) = MyVBNumber(Mid(s_Temp, M_X + 120, 4))<BR><BR>                End If<BR><BR>            Next<BR><BR>            M_Y = MyVBNumber(Mid(s_SAT, (M_Y * 4) + 1, 4))<BR><BR>        Loop<BR><BR>        ' Temporary debug routine to write out the SSAT<BR>        ' TO BE REMOVED<BR>        'If b_Debug Then<BR>        '    o_File = o_FSO.CreateTextFile("DIR.TXT")<BR>        '    o_File.WriteLine("DID" & Chr(9) & " : " & "Name" & String(30 - Len("Name"), " ") & " : " & "Type" & Chr(9) & " : " & "Left DID" & Chr(9) & " : " & "Right DID" & Chr(9) & " : " & "Root DID" & Chr(9) & " : " & "Start Sec" & Chr(9) & " : " & "Size")<BR>        '    For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR>        '  o_File.WriteLine(a_DIR(0,M_X) & Chr(9) & " : " & a_DIR(1,M_X) & String(30-Len(a_DIR(1,M_X))," ") & " : " & a_DIR(2,M_X) & Chr(9) & Chr(9) & " : " & a_DIR(3,M_X) & Chr(9) & Chr(9) & " : " & a_DIR(4,M_X) & Chr(9) & Chr(9) & " : " & a_DIR(5,M_X) & Chr(9) & Chr(9) & " : " & a_DIR(6,M_X) & Chr(9) & Chr(9) & " : " & a_DIR(7,M_X))<BR>        '    Next<BR>        '    o_File.Close()<BR>        'End If<BR><BR>        ' Find out the starting SID for the short stream container and then read the short stream container<BR>        If s_SIDSSAT <> -2 Then<BR><BR>            s_ShortStart = 0<BR>            s_ShortSize = 0<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                If InStr(UCase(a_Dir(1, M_X)), "ROOT ENTRY") > 0 Then<BR><BR>                    ' Allocate the first sector of the short sector container stream<BR>                    s_ShortStart = a_Dir(6, M_X)<BR>                    s_ShortSize = a_Dir(7, M_X)<BR>                    Exit For<BR>                End If<BR><BR>            Next<BR><BR>            M_Y = s_ShortStart<BR>            s_ShortSat = MySectorReader(s_SectSize, M_Y, s_fileName)<BR><BR>            Do While True<BR>                M_Y = MyVBNumber(Mid(s_SAT, (M_Y * 4) + 1, 4))<BR>                If M_Y > 0 Then<BR>                    s_ShortSat = s_ShortSat & MySectorReader(s_SectSize, M_Y, s_fileName)<BR>                End If<BR>                If Len(s_ShortSat) >= s_ShortSize Then<BR>                    Exit Do<BR>                End If<BR>            Loop<BR><BR>        End If<BR><BR>        ' Now lets re-read the DIRECTORY in the proper order as Outlook scrambles it<BR>        For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>            ' Check for a root entry<BR>            If a_Dir(5, M_X) <> -1 Then<BR><BR>                ' Add to final array<BR>                ReDim Preserve a_Temp(8, MyArrayLen(a_Temp, 2) + 1)<BR>                a_Temp(0, MyArrayLen(a_Temp, 2) - 1) = a_Dir(0, M_X)<BR>                a_Temp(1, MyArrayLen(a_Temp, 2) - 1) = a_Dir(1, M_X)<BR>                a_Temp(2, MyArrayLen(a_Temp, 2) - 1) = a_Dir(2, M_X)<BR>                a_Temp(3, MyArrayLen(a_Temp, 2) - 1) = a_Dir(3, M_X)<BR>                a_Temp(4, MyArrayLen(a_Temp, 2) - 1) = a_Dir(4, M_X)<BR>                a_Temp(5, MyArrayLen(a_Temp, 2) - 1) = a_Dir(5, M_X)<BR>                a_Temp(6, MyArrayLen(a_Temp, 2) - 1) = a_Dir(6, M_X)<BR>                a_Temp(7, MyArrayLen(a_Temp, 2) - 1) = a_Dir(7, M_X)<BR><BR>                MySubRead(a_Dir(5, M_X), -1, a_Dir, a_Temp)<BR><BR>            End If<BR>        Next<BR><BR>        ' Temporary debug routine to write out the sorted DIRECTORY<BR>        ' TO BE REMOVED<BR>        'If b_Debug Then<BR>        '    o_File = o_FSO.CreateTextFile("DIRFINAL.TXT")<BR>        'o_File.WriteLine("DID" & Chr(9) & " : " & "Name" & String(30-Len("Name")," ") & " : " & "Type" & Chr(9) & " : " & "Left DID" & Chr(9) & " : " & "Right DID" & Chr(9) & " : " & "Root DID" & Chr(9) & " : " & "Start Sec" & Chr(9) & " : " & "Size")<BR>        '    For M_X = 0 To MyArrayLen(a_Temp, 2) - 1<BR>        '  o_File.WriteLine(a_Temp(0,M_X) & Chr(9) & " : " & a_Temp(1,M_X) & String(30-Len(a_Temp(1,M_X))," ") & " : " & a_Temp(2,M_X) & Chr(9) & Chr(9) & " : " & a_Temp(3,M_X) & Chr(9) & Chr(9) & " : " & a_Temp(4,M_X) & Chr(9) & Chr(9) & " : " & a_Temp(5,M_X) & Chr(9) & Chr(9) & " : " & a_Temp(6,M_X) & Chr(9) & Chr(9) & " : " & a_Temp(7,M_X))<BR>        '    Next<BR>        '    o_File.Close()<BR>        'End If<BR><BR>        ReDim a_Dir(8, MyArrayLen(a_Temp, 2))<BR><BR>        For M_X = 0 To MyArrayLen(a_Temp, 2) - 1<BR><BR>            a_Dir(0, M_X) = a_Temp(0, M_X)<BR>            a_Dir(1, M_X) = a_Temp(1, M_X)<BR>            a_Dir(2, M_X) = a_Temp(2, M_X)<BR>            a_Dir(3, M_X) = a_Temp(3, M_X)<BR>            a_Dir(4, M_X) = a_Temp(4, M_X)<BR>            a_Dir(5, M_X) = a_Temp(5, M_X)<BR>            a_Dir(6, M_X) = a_Temp(6, M_X)<BR>            a_Dir(7, M_X) = a_Temp(7, M_X)<BR><BR>        Next<BR><BR>        ' Now lets build the return strings and data<BR>        If InStr(s_Val, "SUBJECT,") > 0 Then<BR><BR>            ' Now get the directory entry for the subject<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR>                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_0037") > 0 And a_Dir(7, M_X) > 0 Then<BR><BR>                    ' Check if in short stream<BR>                    If a_Dir(7, M_X) < s_MinStream Then<BR>                        s_Subject = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")<BR>                        Exit For<BR>                    Else<BR>                        s_Subject = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)<BR>                        Exit For<BR>                    End If<BR>                End If<BR>            Next<BR><BR>        End If<BR><BR>        ' Now lets build the return strings and data<BR>        If InStr(s_Val, "REPLYTYPE,") > 0 Then<BR><BR>            ' Now get the directory entry for the subject<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR>                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_8003") > 0 And a_Dir(7, M_X) > 0 Then<BR><BR>                    ' Check if in short stream<BR>                    If a_Dir(7, M_X) < s_MinStream Then<BR>                        s_ReplyType = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")<BR>                        Exit For<BR>                    Else<BR>                        s_ReplyType = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)<BR>                        Exit For<BR>                    End If<BR>                End If<BR>            Next<BR><BR>        End If<BR><BR><BR>        If InStr(s_Val, "MESSAGEID,") > 0 Then<BR><BR>            ' Now get the directory entry for the message id<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR>                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_1035") > 0 And a_Dir(7, M_X) > 0 Then<BR><BR>                    ' Check if in short stream<BR>                    If a_Dir(7, M_X) < s_MinStream Then<BR>                        s_MessageID = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")<BR>                        Exit For<BR>                    Else<BR>                        s_MessageID = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)<BR>                        Exit For<BR>                    End If<BR>                End If<BR>            Next<BR><BR>        End If<BR><BR>        If InStr(s_Val, "FROM,") > 0 Then<BR><BR>            ' Now get the directory entry for the from type to find out the source email address<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for SMTP<BR>                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_0065") > 0 And a_Dir(7, M_X) > 0 And s_From = "" Then<BR><BR>                    ' Check if in short stream<BR>                    If a_Dir(7, M_X) < s_MinStream Then<BR>                        s_From = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")<BR>                    Else<BR>                        s_From = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)<BR>                    End If<BR><BR>                End If<BR>            Next<BR><BR>            ' Check if valid SMTP address<BR>            If InStr(s_From, "@") = 0 Then<BR>                s_From = ""<BR>            Else<BR>                s_From = Replace(s_From, "<", "")<BR>                s_From = Replace(s_From, ">", "")<BR>                s_From = Replace(s_From, "'", "")<BR>            End If<BR><BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for return address<BR>                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_800A") > 0 And a_Dir(7, M_X) > 0 And s_From = "" Then<BR><BR>                    ' Check if in short stream<BR>                    If a_Dir(7, M_X) < s_MinStream Then<BR>                        s_From = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")<BR>                        Exit For<BR>                    Else<BR>                        s_From = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)<BR>                        Exit For<BR>                    End If<BR><BR>                End If<BR><BR>            Next<BR><BR>            ' Check if valid SMTP address<BR>            If InStr(s_From, "@") = 0 Then<BR>                s_From = ""<BR>            Else<BR>                s_From = Replace(s_From, "<", "")<BR>                s_From = Replace(s_From, ">", "")<BR>                s_From = Replace(s_From, "'", "")<BR>            End If<BR><BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for return address<BR>                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_800B") > 0 And a_Dir(7, M_X) > 0 And s_From = "" Then<BR><BR>                    ' Check if in short stream<BR>                    If a_Dir(7, M_X) < s_MinStream Then<BR>                        s_From = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")<BR>                        Exit For<BR>                    Else<BR>                        s_From = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)<BR>                        Exit For<BR>                    End If<BR><BR>                End If<BR><BR>            Next<BR><BR>            ' Check if valid SMTP address<BR>            If InStr(s_From, "@") = 0 Then<BR>                s_From = ""<BR>            Else<BR>                s_From = Replace(s_From, "<", "")<BR>                s_From = Replace(s_From, ">", "")<BR>                s_From = Replace(s_From, "'", "")<BR>            End If<BR><BR>            ' Now get the directory entry for the from type to find out the source email address<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for display name<BR>                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_0C1A") > 0 And a_Dir(7, M_X) > 0 And s_From = "" Then<BR><BR>                    ' Check if in short stream<BR>                    If a_Dir(7, M_X) < s_MinStream Then<BR>                        s_From = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")<BR>                        Exit For<BR>                    Else<BR>                        s_From = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)<BR>                        Exit For<BR>                    End If<BR><BR>                End If<BR>            Next<BR><BR>        End If<BR><BR>        If InStr(s_Val, "PREFIX,") > 0 Then<BR><BR>            ' Now get the directory entry for the message id<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR>                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_003D") > 0 And a_Dir(7, M_X) > 0 Then<BR><BR>                    ' Check if in short stream<BR>                    If a_Dir(7, M_X) < s_MinStream Then<BR>                        s_Prefix = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")<BR>                        Exit For<BR>                    Else<BR>                        s_Prefix = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)<BR>                        Exit For<BR>                    End If<BR><BR>                End If<BR>            Next<BR><BR>        End If<BR><BR>        If InStr(s_Val, "BODY,") > 0 Then<BR><BR>            ' Now get the directory entry for the message body<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR>                If InStr(UCase(a_Dir(1, M_X)), "__SUBSTG1.0_1000") > 0 And a_Dir(7, M_X) > 0 Then<BR><BR>                    ' Check if in short stream<BR>                    If a_Dir(7, M_X) < s_MinStream Then<BR>                        s_Body = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_X), a_Dir(7, M_X), a_SSAT, s_ShortSat), Chr(0), "")<BR>                        Exit For<BR>                    Else<BR>                        s_Body = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_X), a_Dir(7, M_X), s_fileName, s_SAT)<BR>                        Exit For<BR>                    End If<BR>                End If<BR>            Next<BR><BR>        End If<BR><BR>        If InStr(s_Val, "ATTACHMENTNUMBERS,") > 0 Then<BR><BR>            ' Now get the directory entry for the attachments<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                If InStr(UCase(a_Dir(1, M_X)), "__ATTACH_VERSION1.0_#") > 0 Then<BR><BR>                    ' Total the number in the email<BR>                    s_AttachNums = s_AttachNums + 1<BR><BR>                End If<BR>            Next<BR><BR>        End If<BR><BR>        If InStr(s_Val, "ATTACHMENTNAMES,") > 0 Then<BR><BR>            ' Now get the directory entry for the attachments<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for attachment<BR>                If InStr(UCase(a_Dir(1, M_X)), "__ATTACH_VERSION1.0_#") > 0 Then<BR><BR>                    ReDim Preserve a_AttachNames(MyArrayLen(a_AttachNames, 1) + 1)<BR><BR>                    ' Get attachment name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for attachment name<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR><BR>                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3704") > 0 Then<BR><BR>                            ' Check if in short stream<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                a_AttachNames(MyArrayLen(a_AttachNames, 1) - 1) = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                a_AttachNames(MyArrayLen(a_AttachNames, 1) - 1) = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3707") > 0 Then<BR><BR>                            ' Check if in short stream<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                a_AttachNames(MyArrayLen(a_AttachNames, 1) - 1) = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                a_AttachNames(MyArrayLen(a_AttachNames, 1) - 1) = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR>                        End If<BR>                    Next<BR>                End If<BR>            Next<BR><BR>        End If<BR><BR>        If InStr(s_Val, "RECIPIENTS,") > 0 Then<BR><BR>            ' Now get the directory entry for the recipients<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for recipient<BR>                If InStr(UCase(a_Dir(1, M_X)), "__RECIP_VERSION1.0_#") > 0 Then<BR><BR>                    ReDim Preserve a_Recipients(MyArrayLen(a_Recipients, 1) + 1)<BR><BR>                    s_Temp = ""<BR><BR>                    ' Get recipient name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for next recipient email<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR>                            Exit For<BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_39FE") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_Recipients(MyArrayLen(a_Recipients, 1) - 1) = s_String<BR>                        End If<BR>                    Next<BR><BR>                    ' Get org email<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for next recipient email<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_403E") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_Recipients(MyArrayLen(a_Recipients, 1) - 1) = s_String<BR>                        End If<BR>                    Next<BR><BR>                    ' Get recipient name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for next recipient display name<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3001") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_Recipients(MyArrayLen(a_Recipients, 1) - 1) = s_String<BR><BR>                        End If<BR>                    Next<BR>                End If<BR>            Next<BR><BR>        End If<BR><BR>        If InStr(s_Val, "RECIPIENTSTO,") > 0 Then<BR><BR>            ' Now get the directory entry for the recipients<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for recipient<BR>                If InStr(UCase(a_Dir(1, M_X)), "__RECIP_VERSION1.0_#") > 0 Then<BR><BR>                    ReDim Preserve a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) + 1)<BR><BR>                    s_Temp = ""<BR><BR>                    ' Get recipient name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for recipient email<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR>                            Exit For<BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_39FE") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) - 1) = s_String<BR>                        End If<BR>                    Next<BR><BR>                    ' Get org email<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for recipient display name<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR><BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_403E") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) - 1) = s_String<BR><BR>                        End If<BR>                    Next<BR><BR>                    ' Get recipient name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for recipient display name<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR><BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3001") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) - 1) = s_String<BR><BR>                        End If<BR>                    Next<BR><BR>                    ' Get recipient type and delete if wrong<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check if its in the TO list<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 And a_Dir(7, M_Y) > 0 Then<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat)<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            For M_Z = 1 To Len(s_String) Step 8<BR>                                If Mid(s_String, M_Z, 4) = MyHexToHexCoded("0300150C") Then<BR>                                    If MyVBNumber(Mid(s_String, M_Z + 8, 1)) <> 1 And s_Temp <> "" Then<BR>                                        If MyArrayLen(a_RecipientsTo, 1) > 1 Then<BR>                                            ReDim Preserve a_RecipientsTo(MyArrayLen(a_RecipientsTo, 1) - 1)<BR>                                        Else<BR>                                            ReDim a_RecipientsTo(0)<BR>                                        End If<BR>                                    End If<BR>                                End If<BR>                            Next<BR><BR>                        End If<BR><BR>                        ' Check for recipient email<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR>                            Exit For<BR>                        End If<BR>                    Next<BR><BR>                End If<BR>            Next<BR><BR>        End If<BR><BR><BR>        If InStr(s_Val, "RECIPIENTSCC,") > 0 Then<BR><BR>            ' Now get the directory entry for the recipients<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for recipient<BR>                If InStr(UCase(a_Dir(1, M_X)), "__RECIP_VERSION1.0_#") > 0 Then<BR><BR>                    ReDim Preserve a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) + 1)<BR><BR>                    s_Temp = ""<BR><BR>                    ' Get recipient name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for recipient email<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR>                            Exit For<BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_39FE") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) - 1) = s_String<BR>                        End If<BR>                    Next<BR><BR>                    ' Get org email<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for recipient display name<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR><BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_403E") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) - 1) = s_String<BR><BR>                        End If<BR>                    Next<BR><BR>                    ' Get recipient name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for recipient display name<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR><BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3001") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) - 1) = s_String<BR><BR>                        End If<BR>                    Next<BR><BR>                    ' Get recipient type and delete if wrong<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check if its in the TO list<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 And a_Dir(7, M_Y) > 0 Then<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat)<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            For M_Z = 1 To Len(s_String) Step 8<BR>                                If Mid(s_String, M_Z, 4) = MyHexToHexCoded("0300150C") Then<BR>                                    If MyVBNumber(Mid(s_String, M_Z + 8, 1)) <> 2 And s_Temp <> "" Then<BR>                                        If MyArrayLen(a_RecipientsCC, 1) > 1 Then<BR>                                            ReDim Preserve a_RecipientsCC(MyArrayLen(a_RecipientsCC, 1) - 1)<BR>                                        Else<BR>                                            ReDim a_RecipientsCC(0)<BR>                                        End If<BR>                                    End If<BR>                                End If<BR>                            Next<BR><BR>                        End If<BR><BR>                        ' Check for recipient email<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR>                            Exit For<BR>                        End If<BR>                    Next<BR><BR>                End If<BR>            Next<BR><BR>        End If<BR><BR><BR>        If InStr(s_Val, "RECIPIENTSBCC,") > 0 Then<BR><BR>            ' Now get the directory entry for the recipients<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for recipient<BR>                If InStr(UCase(a_Dir(1, M_X)), "__RECIP_VERSION1.0_#") > 0 Then<BR><BR>                    ReDim Preserve a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) + 1)<BR><BR>                    s_Temp = ""<BR><BR>                    ' Get recipient name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for recipient email<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR>                            Exit For<BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_39FE") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) - 1) = s_String<BR>                        End If<BR>                    Next<BR><BR>                    ' Get org email<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for recipient display name<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR><BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_403E") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) - 1) = s_String<BR><BR>                        End If<BR>                    Next<BR><BR>                    ' Get recipient name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for recipient display name<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR><BR>                        End If<BR><BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3001") > 0 And a_Dir(7, M_Y) > 0 And s_Temp = "" Then<BR><BR>                            s_Temp = "1"<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            ' Check if valid SMTP address<BR>                            If InStr(s_String, "@") <> 0 Then<BR>                                s_String = Replace(s_String, "<", "")<BR>                                s_String = Replace(s_String, ">", "")<BR>                                s_String = Replace(s_String, "'", "")<BR>                            End If<BR><BR>                            a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) - 1) = s_String<BR><BR>                        End If<BR>                    Next<BR><BR>                    ' Get recipient type and delete if wrong<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check if its in the TO list<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 And a_Dir(7, M_Y) > 0 Then<BR><BR>                            ' Check if in short stream<BR>                            s_String = ""<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                s_String = MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat)<BR>                            Else<BR>                                s_String = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                            For M_Z = 1 To Len(s_String) Step 8<BR>                                If Mid(s_String, M_Z, 4) = MyHexToHexCoded("0300150C") Then<BR>                                    If MyVBNumber(Mid(s_String, M_Z + 8, 1)) <> 3 And s_Temp <> "" Then<BR>                                        If MyArrayLen(a_RecipientsBCC, 1) > 1 Then<BR>                                            ReDim Preserve a_RecipientsBCC(MyArrayLen(a_RecipientsBCC, 1) - 1)<BR>                                        Else<BR>                                            ReDim a_RecipientsBCC(0)<BR>                                        End If<BR>                                    End If<BR>                                End If<BR>                            Next<BR><BR>                        End If<BR><BR>                        ' Check for recipient email<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR>                            Exit For<BR>                        End If<BR>                    Next<BR><BR>                End If<BR>            Next<BR><BR>        End If<BR><BR>        If InStr(s_Val, "ATTACHMENTEXTRACT,") > 0 Then<BR><BR>            ' Now get the directory entry for the attachments<BR>            For M_X = 0 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                ' Check for attachment<BR>                If InStr(UCase(a_Dir(1, M_X)), "__ATTACH_VERSION1.0_#") > 0 Then<BR><BR>                    ReDim Preserve a_Attachments(MyArrayLen(a_Attachments, 1) + 1)<BR>                    ReDim Preserve a_Attachments2(MyArrayLen(a_Attachments2, 1) + 1)<BR><BR>                    ' Get attachment name<BR>                    For M_Y = M_X + 1 To MyArrayLen(a_Dir, 2) - 1<BR><BR>                        ' Check for attachment name<BR>                        If InStr(UCase(a_Dir(1, M_Y)), "__ATTACH_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__RECIP_VERSION1.0_#") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__NAMEID_VERSION1.0") > 0 Or InStr(UCase(a_Dir(1, M_Y)), "__PROPERTIES_VERSION1.0") > 0 Then<BR><BR>                            Exit For<BR><BR>                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3701") > 0 Then<BR><BR>                            ' Check if in short stream<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR><BR>                                s_Temp = o_FSO.GetSpecialFolder(2) & o_FSO.GetTempName<BR>                                o_File = o_FSO.CreateTextFile(s_Temp, True, False)<BR>                                o_File.Write(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat))<BR>                                a_Attachments(MyArrayLen(a_Attachments, 1) - 1) = s_Temp<BR>                                o_File.Close()<BR><BR>                            Else<BR><BR>                                a_Attachments(MyArrayLen(a_Attachments, 1) - 1) = MyLongSectorReader("FILE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR><BR>                            End If<BR><BR>                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3704") > 0 Then<BR><BR>                            ' Check if in short stream<BR>                            If a_Dir(7, M_Y) < s_MinStream Then<BR>                                a_Attachments2(MyArrayLen(a_Attachments2, 1) - 1) = Replace(MyShortSectorReader(s_ShortSectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), a_SSAT, s_ShortSat), Chr(0), "")<BR>                            Else<BR>                                a_Attachments2(MyArrayLen(a_Attachments2, 1) - 1) = MyLongSectorReader("VARIABLE", s_SectSize, a_Dir(6, M_Y), a_Dir(7, M_Y), s_fileName, s_SAT)<BR>                            End If<BR><BR>                        ElseIf InStr(UCase(a_Dir(1, M_Y)), "__SUBSTG1.0_3707
