<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkEDQXszeyp7ImA9WhBaEEQ.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802</id><updated>2013-05-21T00:57:50.583+02:00</updated><category term="calendar" /><category term="SQL" /><category term="visual basic" /><category term="web" /><category term="development" /><category term="free" /><category term="blogspot" /><category term="ix webhosting" /><category term="fn_varbintohexstr" /><category term="hash" /><category term="SVG" /><category term="storage" /><category term="api" /><category term="date" /><category term="insert" /><category term="array" /><category term="sum" /><category term="css" /><category term="variant" /><category term="e-mail" /><category term="function" /><category term="HashBytes" /><category term=".net" /><category term="developer" /><category term="group" /><category term="cron" /><category term="hashing" /><category term="facebook" /><category term="rowlock" /><category term="table" /><category term="java" /><category term="argb" /><category term="microsoft excel" /><category term="schedule" /><category term="lock" /><category term="UDF" /><category term="procedure" /><category term="second" /><category term="formatting" /><category term="toolbar" /><category term="dedicated server" /><category term="shared hosting" /><category term="format" /><category term="workbook" /><category term="2007" /><category term="unlimited" /><category term="updlock" /><category term="SDK" /><category term="visual studio" /><category term="ix web" /><category term="split" /><category term="ui" /><category term="stringbuilder" /><category term="substring" /><category term="bandwidth" /><category term="microsoft office" /><category term="html" /><category term="color" /><category term="selection" /><category term="ssl" /><category term="certificate" /><category term="design" /><category term="asp.net" /><category term="decompile" /><category term="datetime" /><category term="encode" /><category term="error" /><category term="StartCom" /><category term="scheduled task" /><category term="google" /><category term="dayofweek" /><category term="url encode" /><category term="holdlock" /><category term="url" /><category term="MAPI" /><category term="judo" /><category term="javascript" /><category term="month" /><category term="minute" /><category term="SP" /><category term="SQL Server" /><category term="transparent" /><category term="datepart" /><category term="2003" /><category term="template" /><category term="weekday" /><category term="hour" /><category term="assembly" /><category term="png" /><category term="firstdayofweek" /><category term="string" /><category term="reflector" /><category term="programmer" /><category term="download" /><category term="excel" /><category term="picture" /><category term="year" /><category term="karate" /><category term="webhosting" /><category term="range" /><category term="windows" /><category term="october 1st" /><category term="code" /><category term="wininet" /><category term="update" /><category term="row" /><category term="database" /><category term="vps" /><category term="linux" /><category term="debug" /><category term="rendering" /><category term="vba" /><category term="dateadd" /><category term="office" /><category term="transaction" /><category term="free ssl" /><category term="webclient" /><category term="schemabinding" /><category term="php" /><category term="internet explorer" /><category term="constant" /><category term="convert" /><category term="programming" /><category term="query argument" /><category term="webdesign" /><category term="2010" /><category term="martial arts" /><category term="datediff" /><category term="codeplex" /><category term="hostgator" /><category term="ribbon" /><category term="transact-SQL" /><category term="MS SQL" /><category term="button" /><category term="userdefined" /><category term="ie" /><category term="options" /><category term="time" /><category term="facebook app" /><category term="C#" /><category term="worksheet" /><category term="upsert" /><category term="outlook" /><category term="day" /><category term="rgb" /><category term="blogger" /><category term="url decode" /><category term="microsoft" /><category term="exception" /><category term="atomic" /><category term="datefirst" /><category term="md5" /><category term="scheduling" /><title>LazerWire.com</title><subtitle type="html">Technology and software development</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.lazerwire.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.lazerwire.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/lazerwire/gBnM" /><feedburner:info uri="lazerwire/gbnm" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><entry gd:etag="W/&quot;CE4HR388fCp7ImA9WhVXGE8.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-3726334304270134125</id><published>2012-04-19T10:08:00.000+02:00</published><updated>2012-04-19T10:08:56.174+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-19T10:08:56.174+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="karate" /><category scheme="http://www.blogger.com/atom/ns#" term="martial arts" /><category scheme="http://www.blogger.com/atom/ns#" term="facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="facebook app" /><category scheme="http://www.blogger.com/atom/ns#" term="judo" /><title>Facebook App: My Fighter Profile</title><content type="html">If you're enjoying the martial arts (karate, tae kwon do, judo, etc.) you should share your fighter profile with your friends on Facebook using the new My Fighter Profile app. You can share all gradings, results from tournaments, etc.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://apps.facebook.com/myfighterprofile" target="_blank"&gt;My Fighter Profile App&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.myfighterprofile.com/" target="_blank"&gt;Homepage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/Of6L0L9iX1Y" height="1" width="1"/&gt;</content><link rel="related" href="http://apps.facebook.com/myfighterprofile" title="Facebook App: My Fighter Profile" /><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/3726334304270134125/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2012/04/facebook-app-my-fighter-profile.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/3726334304270134125?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/3726334304270134125?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/Of6L0L9iX1Y/facebook-app-my-fighter-profile.html" title="Facebook App: My Fighter Profile" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2012/04/facebook-app-my-fighter-profile.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EFQH0_fyp7ImA9WhRSFEg.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-2781171016713114983</id><published>2011-11-16T15:57:00.005+01:00</published><updated>2011-11-16T16:00:11.347+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T16:00:11.347+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ribbon" /><category scheme="http://www.blogger.com/atom/ns#" term="developer" /><category scheme="http://www.blogger.com/atom/ns#" term="2010" /><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="2003" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="toolbar" /><category scheme="http://www.blogger.com/atom/ns#" term="2007" /><category scheme="http://www.blogger.com/atom/ns#" term="programmer" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft office" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft excel" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>Excel VBA: Display the Developer Toolbar or Ribbon</title><content type="html">&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;By default the &lt;strong&gt;developer toolbar&lt;/strong&gt; or &lt;strong&gt;ribbon&lt;/strong&gt; (depending on the Excel version) is hidden in Microsoft Excel. In Excel 2007 and later it can be quite tricky to figure out where to enable the developer ribbon if you don't know where to look. To make things even worse, in Excel 2010 they have changed the way of enabling the ribbon.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;strong&gt;Excel 2010&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;In Excel 2010 you can display the developer toolbar the following way:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Click the green&amp;nbsp;&lt;strong&gt;&lt;em&gt;File&lt;/em&gt;&lt;/strong&gt; Button&lt;/li&gt;
&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Press &lt;strong&gt;&lt;em&gt;Options&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Make sure that the &lt;em&gt;&lt;strong&gt;Customize Ribbon&lt;/strong&gt;&lt;/em&gt; right menu item is selected.&lt;/li&gt;
&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;In the dropdown list called &lt;em&gt;&lt;strong&gt;Customize the Ribbon&lt;/strong&gt;&lt;/em&gt;, select &lt;em&gt;&lt;strong&gt;All Tabs&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;In the group called&lt;em&gt;&lt;strong&gt; Main Tabs&lt;/strong&gt;&lt;/em&gt;, make sure that the option &lt;strong&gt;&lt;em&gt;Developer&lt;/em&gt;&lt;/strong&gt; is checked.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-sRIZLNISWFY/TsO-Qc8oysI/AAAAAAAAAIw/PyD0c445Uhk/s1600/excel2010dev.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; height: 208px; margin-bottom: 1em; margin-right: 1em; width: 372px;"&gt;&lt;img border="0" hda="true" height="206" src="http://3.bp.blogspot.com/-sRIZLNISWFY/TsO-Qc8oysI/AAAAAAAAAIw/PyD0c445Uhk/s400/excel2010dev.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Excel 2007&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;To display the developer ribbon, do the following:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Click the &lt;strong&gt;&lt;em&gt;Office Button&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click the &lt;em&gt;&lt;strong&gt;Excel Options&lt;/strong&gt;&lt;/em&gt; button at the bottom of the dialog.&lt;/li&gt;
&lt;li&gt;Ensure that the &lt;strong&gt;&lt;em&gt;Popular&lt;/em&gt;&lt;/strong&gt; tab in the left menu is selected (se picture below)&lt;/li&gt;
&lt;li&gt;Check the option &lt;strong&gt;&lt;em&gt;Show Developer tab in the Ribbon&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-J7GVZmRBG5w/Trg5nDjK27I/AAAAAAAAAIc/_K-8Yf1Py80/s1600/exceldevtoolbar2007.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="175" ida="true" src="http://3.bp.blogspot.com/-J7GVZmRBG5w/Trg5nDjK27I/AAAAAAAAAIc/_K-8Yf1Py80/s400/exceldevtoolbar2007.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Excel 2003&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;In older versions of excel the developer ribbon is divided between two toolbars: &lt;strong&gt;&lt;em&gt;Control Toolbox&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;Forms&lt;/em&gt;&lt;/strong&gt;. The toolbars can be displayed the following way:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Press &lt;strong&gt;&lt;em&gt;View&lt;/em&gt;&lt;/strong&gt; on the main toolbar&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Select &lt;strong&gt;&lt;em&gt;Toolbars&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Check the toolbar &lt;strong&gt;&lt;em&gt;Control Toolbox&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Check the toolbar &lt;strong&gt;&lt;em&gt;Forms&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="http://3.bp.blogspot.com/-Yp6JPgU6tnY/TsPO3ttxtxI/AAAAAAAAAI4/P34GGPM18Ig/s1600/excel2003dev.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" hda="true" height="320" src="http://3.bp.blogspot.com/-Yp6JPgU6tnY/TsPO3ttxtxI/AAAAAAAAAI4/P34GGPM18Ig/s320/excel2003dev.jpg" width="317" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/MUJQjPp-hk0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/2781171016713114983/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/11/excel-vba-display-developer-toolbar-or.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/2781171016713114983?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/2781171016713114983?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/MUJQjPp-hk0/excel-vba-display-developer-toolbar-or.html" title="Excel VBA: Display the Developer Toolbar or Ribbon" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-sRIZLNISWFY/TsO-Qc8oysI/AAAAAAAAAIw/PyD0c445Uhk/s72-c/excel2010dev.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/11/excel-vba-display-developer-toolbar-or.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AMRX8_fCp7ImA9WhRTFkQ.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-4241844375601529451</id><published>2011-11-07T20:55:00.001+01:00</published><updated>2011-11-07T20:56:24.144+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T20:56:24.144+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term="options" /><category scheme="http://www.blogger.com/atom/ns#" term="debug" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="assembly" /><title>Visual Studio 2010: Debug the .NET assemblies</title><content type="html">The .NET framework is under heavy development and bugs are removed by Microsoft developers when found. However, you may still experience major bugs that might cause your application to crash. Sometimes it is even hard to determine whether it is a bug in your own code or in the framework. This issue has been taken to a new level in &lt;strong&gt;Visual Studio 2010&lt;/strong&gt;. A feature, which by default is disabled in Visual Studio, enables you to debug the entire .NET source code directly within VS2010. Previously tools like .NET Reflector and &lt;a href="http://www.lazerwire.com/2011/10/net-alternatives-to-net-reflector.html"&gt;ILSpy&lt;/a&gt; were required to identify any bugs in the .NET framework.&lt;br /&gt;
&lt;br /&gt;
To enable .NET framework code debugging, please do the following:&lt;br /&gt;
&lt;br /&gt;
1) In Visual Studio 2010, select &lt;strong&gt;Debug -&amp;gt; Options and Settings...&lt;/strong&gt;&lt;br /&gt;
The Options dialog is displayed.&lt;br /&gt;
&lt;br /&gt;
2) Select &lt;strong&gt;Debugging&lt;/strong&gt; in the left menu (se picture below) and check the option &lt;strong&gt;Enable .NET Framework source stepping&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Y8N7Q9GypC0/TqO6Vdf7B-I/AAAAAAAAAIA/0-a7asXCUGg/s1600/vs2010stepnetcode.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248px" rda="true" src="http://4.bp.blogspot.com/-Y8N7Q9GypC0/TqO6Vdf7B-I/AAAAAAAAAIA/0-a7asXCUGg/s400/vs2010stepnetcode.JPG" width="400px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When running your application in debug mode, Visual Studio will download the .NET source code when needed. Please be aware that the source code might use a lot of free space on your hard drive depending on how many .NET assemblies that are in use.&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/Cl8VpvEB5yQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/4241844375601529451/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/11/vs2010-debug-net-assemblies.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4241844375601529451?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4241844375601529451?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/Cl8VpvEB5yQ/vs2010-debug-net-assemblies.html" title="Visual Studio 2010: Debug the .NET assemblies" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-Y8N7Q9GypC0/TqO6Vdf7B-I/AAAAAAAAAIA/0-a7asXCUGg/s72-c/vs2010stepnetcode.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/11/vs2010-debug-net-assemblies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0INRng6eCp7ImA9WhRTFkQ.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-604784754525519986</id><published>2011-11-07T20:53:00.000+01:00</published><updated>2011-11-07T20:53:17.610+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T20:53:17.610+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="formatting" /><category scheme="http://www.blogger.com/atom/ns#" term="blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="format" /><category scheme="http://www.blogger.com/atom/ns#" term="MS SQL" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="blogspot" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="visual basic" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><title>Blogger: Pretty formatting source code</title><content type="html">When writing a blog related to programming it is quite tricky and troublesome to format the source code in a readable way. That is why we need pretty-formating tools. The following sites offer free tools for formatting source code:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.manoli.net/csharpformat/"&gt;C# Format&lt;/a&gt; - despite the name, this online tools allows you to pretty-format C#, VB, HTML and&amp;nbsp;T-SQL. The source code in .NET is even available.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/wfLHoJ2uVck" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/604784754525519986/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/11/blogger-pretty-formatting-source-code.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/604784754525519986?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/604784754525519986?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/wfLHoJ2uVck/blogger-pretty-formatting-source-code.html" title="Blogger: Pretty formatting source code" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/11/blogger-pretty-formatting-source-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4FSHo7fyp7ImA9WhBVFkk.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-3159192259869373378</id><published>2011-11-07T20:25:00.000+01:00</published><updated>2013-04-22T18:08:39.407+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-22T18:08:39.407+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ribbon" /><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="office" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="ui" /><category scheme="http://www.blogger.com/atom/ns#" term="toolbar" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="button" /><title>Excel VBA: Adding custom Button to the Toolbar or Ribbon</title><content type="html">Custom buttons are added&amp;nbsp;to the toolbars or ribbons when a Microsoft Excel sheet is opened, and removed when the sheet is closed. To be notified when a given Excel sheet is loaded we need to listen to the &lt;strong&gt;&lt;em&gt;Workbook_Open&lt;/em&gt;&lt;/strong&gt; event of the &lt;strong&gt;&lt;em&gt;ThisWorkbook&lt;/em&gt;&lt;/strong&gt; object found in the VBA Project explorer.&lt;br /&gt;
Please notice that the following code works best with Excel versions prior to Office 2007. If used in newer versions, from Excel 2007, the button and commandbar will be added to the "Add-Ins" tab. It is only possible to add buttons to the main ribbon using dynamic XML when using VBA. Se below for more information.&lt;br /&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: Consolas, "Courier New", Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}

.csharpcode .lnum { color: #606060; }
&lt;/style&gt;&lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;' Constants&lt;/span&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; COMMANDBAR_NAME &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;"Custom Toolbar"&lt;/span&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; BUTTON_CAPTION &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;"My Button"&lt;/span&gt;&lt;span class="rem"&gt;' Open&lt;/span&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Workbook_Open()
    &lt;span class="rem"&gt;' Variables&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objCommandBar &lt;span class="kwrd"&gt;As&lt;/span&gt; CommandBar
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objButton &lt;span class="kwrd"&gt;As&lt;/span&gt; CommandBarButton

    &lt;span class="rem"&gt;' Try to get the Commandbar (if it exists)&lt;/span&gt;
    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt;
    &lt;span class="kwrd"&gt;Set&lt;/span&gt; objCommandBar = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.CommandBars(COMMANDBAR_NAME)
    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;GoTo&lt;/span&gt; 0
    
    &lt;span class="rem"&gt;' Was the commandbar available?&lt;/span&gt;
    &lt;span class="kwrd"&gt;If&lt;/span&gt; (objCommandBar &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        &lt;span class="rem"&gt;' Create the commandbar&lt;/span&gt;
        &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt;
        &lt;span class="kwrd"&gt;Set&lt;/span&gt; objCommandBar = Application.CommandBars.Add(Name:=COMMANDBAR_NAME, Position:=msoBarTop, Temporary:=&lt;span class="kwrd"&gt;True&lt;/span&gt;)
        &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;GoTo&lt;/span&gt; 0
        
        &lt;span class="rem"&gt;' Valid commandbar?&lt;/span&gt;
        &lt;span class="kwrd"&gt;If&lt;/span&gt; (&lt;span class="kwrd"&gt;Not&lt;/span&gt; objCommandBar &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="rem"&gt;' Add the buttons to the command bar&lt;/span&gt;
            &lt;span class="kwrd"&gt;With&lt;/span&gt; objCommandBar
                &lt;span class="rem"&gt;' Add button&lt;/span&gt;
                &lt;span class="kwrd"&gt;Set&lt;/span&gt; objButton = objCommandBar.Controls.Add(Type:=msoControlButton, Temporary:=&lt;span class="kwrd"&gt;True&lt;/span&gt;)
                
                 &lt;span class="rem"&gt;' Set the button properties&lt;/span&gt;
                &lt;span class="kwrd"&gt;With&lt;/span&gt; objButton
                    .Style = msoButtonIconAndCaption
                    .Caption = BUTTON_CAPTION
                    .FaceId = 258
                    .TooltipText = &lt;span class="str"&gt;"Do Something"&lt;/span&gt;
                    .OnAction = &lt;span class="str"&gt;"'"&lt;/span&gt; &amp;amp; ThisWorkbook.Name &amp;amp; &lt;span class="str"&gt;"'!OnDoSomething"&lt;/span&gt;
                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
                
                &lt;span class="rem"&gt;' Show the command bar&lt;/span&gt;
                .Visible = &lt;span class="kwrd"&gt;True&lt;/span&gt;
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;span class="rem"&gt;' Before Close&lt;/span&gt;&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Workbook_BeforeClose(Cancel &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;)
    
    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt;
    &lt;span class="rem"&gt;' Try to remove the iTrade command bar&lt;/span&gt;
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; Application.CommandBars(COMMANDBAR_NAME).Delete
    
    &lt;span class="rem"&gt;' Restore error handling&lt;/span&gt;
    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;GoTo&lt;/span&gt; 0
&lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;
&lt;div class="csharpcode"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The custom event called &lt;em&gt;&lt;strong&gt;OnDoSomething&lt;/strong&gt;&lt;/em&gt; must be defined in a global &lt;strong&gt;&lt;em&gt;Module&lt;/em&gt;&lt;/strong&gt;. It doesn't work to define the method in the Workbook class. Insert a new Module and add the following code:&lt;br /&gt;
&lt;br /&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: Consolas, "Courier New", Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}

.csharpcode .lnum { color: #606060; }
&lt;/style&gt;&lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Option&lt;/span&gt; Explicit

&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; OnDoSomething()
    MsgBox &lt;span class="str"&gt;"Hello World!"&lt;/span&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;
&lt;div class="csharpcode"&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
You can change the button icon by specifying another &lt;em&gt;&lt;strong&gt;FaceId&lt;/strong&gt;&lt;/em&gt; value. To get a list of all available FaceIds on you computer, download and and install the FaceID Browser:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://skp.mvps.org/faceid.htm"&gt;FaceID Browser&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;strong&gt;Excel 2007 and later&lt;/strong&gt;&lt;br /&gt;
To dynamically add buttons to the Ribbon you must use a combination of XML and VBA. For more information, please visit:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/office/aa338202%28v=office.12%29.aspx" target="_blank"&gt;How to: Use VBA to Add a Custom Command to the Ribbon&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Resources&lt;/strong&gt;&lt;br /&gt;
Other usefull pages:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/11/excel-vba-adding-custom-buttons-to.html"&gt;Excel VBA: Adding items to the right-click menu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/wVLHizduqUk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/3159192259869373378/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/11/excel-vba-adding-custom-button-to.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/3159192259869373378?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/3159192259869373378?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/wVLHizduqUk/excel-vba-adding-custom-button-to.html" title="Excel VBA: Adding custom Button to the Toolbar or Ribbon" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/11/excel-vba-adding-custom-button-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcDR3o7cSp7ImA9WhRTFkQ.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-1790870073862257998</id><published>2011-11-07T20:15:00.001+01:00</published><updated>2011-11-07T20:27:56.409+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T20:27:56.409+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ribbon" /><category scheme="http://www.blogger.com/atom/ns#" term="workbook" /><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="toolbar" /><category scheme="http://www.blogger.com/atom/ns#" term="worksheet" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>Excel VBA: Adding custom buttons to the Right-Click popup menu</title><content type="html">In Microsoft Excel it is possible to extend the right click popup menu by using VBA. The right click menu is implemented as a special CommandBar (like the toolbars in Excel 2003) with the name "Cell".&lt;br /&gt;
Customs buttons are added before the popup menu is displayed. It is up to your self to make sure that any custom buttons are removed when they are no longer in use. Otherwise you would end up adding a new button every time the right menu is about to be displayed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: Consolas, "Courier New", Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}

.csharpcode .lnum { color: #606060; }
&lt;/style&gt;&lt;br /&gt;
&lt;pre class="csharpcode" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span class="kwrd"&gt;Option&lt;/span&gt; Explicit

&lt;span class="rem"&gt;' Constants&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; BUTTON_CAPTION &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;"My Button"&lt;/span&gt;


&lt;span class="rem"&gt;' Before Right Click&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Workbook_SheetBeforeRightClick(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; objSheet &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Target &lt;span class="kwrd"&gt;As&lt;/span&gt; Range, Cancel &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;)
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objButton &lt;span class="kwrd"&gt;As&lt;/span&gt; CommandBarButton
    
    &lt;span class="rem"&gt;' Remove the e-mail popup menu&lt;/span&gt;
    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;Resume&lt;/span&gt; &lt;span class="kwrd"&gt;Next&lt;/span&gt;
    &lt;span class="kwrd"&gt;With&lt;/span&gt; Application.CommandBars(&lt;span class="str"&gt;"Cell"&lt;/span&gt;)
        &lt;span class="kwrd"&gt;Call&lt;/span&gt; .Controls(BUTTON_CAPTION).Delete
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;GoTo&lt;/span&gt; 0
    
    &lt;span class="rem"&gt;' Is the sheet1?&lt;/span&gt;
    &lt;span class="kwrd"&gt;If&lt;/span&gt; (objSheet &lt;span class="kwrd"&gt;Is&lt;/span&gt; Sheet1) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
    
        &lt;span class="rem"&gt;' Add the special button&lt;/span&gt;
        &lt;span class="kwrd"&gt;Set&lt;/span&gt; objButton = Application.CommandBars(&lt;span class="str"&gt;"Cell"&lt;/span&gt;).Controls.Add(Type:=msoControlButton, Temporary:=&lt;span class="kwrd"&gt;True&lt;/span&gt;, Before:=1)
        
        &lt;span class="rem"&gt;' Set the button properties&lt;/span&gt;
        &lt;span class="kwrd"&gt;With&lt;/span&gt; objButton
            .Style = msoButtonIconAndCaption
            .Caption = BUTTON_CAPTION
            .FaceId = 258
            .TooltipText = &lt;span class="str"&gt;"Do Something"&lt;/span&gt;
            .OnAction = &lt;span class="str"&gt;"'"&lt;/span&gt; &amp;amp; ThisWorkbook.Name &amp;amp; &lt;span class="str"&gt;"'!OnDoSomething"&lt;/span&gt;
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;With&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Notice that the method &lt;strong&gt;&lt;em&gt;SheetBeforeRightClick&lt;/em&gt;&lt;/strong&gt; is overriden for the &lt;strong&gt;&lt;em&gt;Workbook&lt;/em&gt;&lt;/strong&gt; (ThisWorkbook) object, and not the worksheet, even though it is displayed on the worksheet. We are doing a check in the VBA code before the right click menu is displayed to ensure that it is only displayed for the worksheet named "Sheet1".&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-BtKGZ4zEBgw/Trgp16a__KI/AAAAAAAAAIM/QhgMBqx30_c/s1600/excelrightclick.GIF" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="331px" ida="true" src="http://3.bp.blogspot.com/-BtKGZ4zEBgw/Trgp16a__KI/AAAAAAAAAIM/QhgMBqx30_c/s640/excelrightclick.GIF" width="640px" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;Please notice that all actions, i.e. &lt;em&gt;&lt;strong&gt;OnAction&lt;/strong&gt;&lt;/em&gt; events, must be stored in a public module. It is not possible to define the &lt;strong&gt;&lt;em&gt;OnDoSomething&lt;/em&gt;&lt;/strong&gt; method in the workbook or the worksheet classes. Add a new &lt;strong&gt;&lt;em&gt;Module&lt;/em&gt;&lt;/strong&gt; (Module1) and add the following code:&lt;/div&gt;&lt;br /&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: Consolas, "Courier New", Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}

.csharpcode .lnum { color: #606060; }
&lt;/style&gt;&lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Option&lt;/span&gt; Explicit

&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DoSomething()
    MsgBox &lt;span class="str"&gt;"Hello World!"&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;To specify an icon for the new button, a numeric value must be set for the FaceId property of the button. There is no built-in way of displaying all possible FaceIds. However, you can download and install the Excel add-in called Face ID Browser to display all possible button icons:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="http://skp.mvps.org/faceid.htm"&gt;FaceID Browser&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&amp;nbsp;The final result will display the following custom menu item on the right click menu:&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-3QLMHC9OOsA/TrgsDT50HqI/AAAAAAAAAIU/fcdgAa9VQHg/s1600/excelrightclickresult.JPG" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" ida="true" src="http://2.bp.blogspot.com/-3QLMHC9OOsA/TrgsDT50HqI/AAAAAAAAAIU/fcdgAa9VQHg/s1600/excelrightclickresult.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&amp;nbsp;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;For more information on how to add buttons to CommandBars, please check out:&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/11/excel-vba-adding-custom-buttons-to.html"&gt;Excel VBA: Add buttons to toolbars/ribbons&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/2TXJ8LTILzI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/1790870073862257998/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/11/excel-vba-adding-custom-buttons-to.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1790870073862257998?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1790870073862257998?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/2TXJ8LTILzI/excel-vba-adding-custom-buttons-to.html" title="Excel VBA: Adding custom buttons to the Right-Click popup menu" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-BtKGZ4zEBgw/Trgp16a__KI/AAAAAAAAAIM/QhgMBqx30_c/s72-c/excelrightclick.GIF" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/11/excel-vba-adding-custom-buttons-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEERng8fCp7ImA9WhRTEUo.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-7408198328466165973</id><published>2011-11-01T19:36:00.000+01:00</published><updated>2011-11-01T19:36:47.674+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T19:36:47.674+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="format" /><category scheme="http://www.blogger.com/atom/ns#" term="stringbuilder" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="office" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="string" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>Excel VBA: String Format</title><content type="html">The functions &lt;em&gt;&lt;strong&gt;string.Format&lt;/strong&gt;&lt;/em&gt; or &lt;strong&gt;&lt;em&gt;StringBuilder.AppendFormat&lt;/em&gt;&lt;/strong&gt; are two very usefull functions for formatting strings and increasing the readability of your .NET code. The &lt;em&gt;Format&lt;/em&gt; function in VBA unfortunately works in a quite different way than the &lt;em&gt;string.Format&lt;/em&gt; function in .NET. As far as I know there is no built-in function in VBA to acomplish the exact same as &lt;em&gt;string.Format&lt;/em&gt;. In VBA the functionality can be achieved the following way:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;' Format string using the .NET way&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue;"&gt;Public Function&lt;/span&gt; StringFormat(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; strValue &lt;span style="color: blue;"&gt;As String&lt;/span&gt;, &lt;span style="color: blue;"&gt;ParamArray&lt;/span&gt; arrParames() &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Variant&lt;/span&gt;) &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; i &lt;span style="color: blue;"&gt;As Integer&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #38761d;"&gt;' Replace parameters&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;For&lt;/span&gt; i = &lt;span style="color: blue;"&gt;LBound&lt;/span&gt;(arrParames()) &lt;span style="color: blue;"&gt;To&lt;/span&gt; &lt;span style="color: blue;"&gt;UBound&lt;/span&gt;(arrParames())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strValue = Replace(strValue, "{" &amp;amp; &lt;span style="color: blue;"&gt;CStr&lt;/span&gt;(i) &amp;amp; "}", &lt;span style="color: blue;"&gt;CStr&lt;/span&gt;(arrParames(i)))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Next&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #38761d;"&gt;' Get the value&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringFormat = strValue&lt;br /&gt;
&lt;span style="color: blue;"&gt;End Function&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/zeHVKPhEzvw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/7408198328466165973/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/11/excel-vba-string-format.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/7408198328466165973?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/7408198328466165973?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/zeHVKPhEzvw/excel-vba-string-format.html" title="Excel VBA: String Format" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/11/excel-vba-string-format.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4ARX4zcCp7ImA9WhRTEUs.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-4342602743448446137</id><published>2011-11-01T18:33:00.003+01:00</published><updated>2011-11-01T18:35:44.088+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T18:35:44.088+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="internet explorer" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="visual basic" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><category scheme="http://www.blogger.com/atom/ns#" term="wininet" /><category scheme="http://www.blogger.com/atom/ns#" term="webclient" /><category scheme="http://www.blogger.com/atom/ns#" term="api" /><category scheme="http://www.blogger.com/atom/ns#" term="download" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>Excel VBA: Download files from the Internet</title><content type="html">There is no built-in function in Microsoft Excel which allows you to download contents from the Internet on the fly. To accomplish this task we need to use the API for &lt;em&gt;WinInet&lt;/em&gt;. The use and explanation of API in VBA is for advanced users which have prior experience from either Visual Basic 6.0 or .NET.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Pitfalls&lt;/strong&gt;&lt;br /&gt;
It is very important that all open Internet connections are closed as soon as the task is completed. WinInet only allows 2 concurrent connections to a given host. If you forget to shut down the connection after use, you will experience timeouts and misleading error messages. Please refer to the following website for more information related to the maximum allowed concurrent web connections:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/183110"&gt;Adjust maximum concurrent connections&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;strong&gt;Howto&lt;/strong&gt;&lt;br /&gt;
The source code below should be pasted in a "&lt;em&gt;Class Module&lt;/em&gt;" in Excel. If you are not sure how to open the VBA editor in Excel for your current&amp;nbsp;Microsoft Office version, please refer to the following page:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Display the developer toolbar or ribbon in Excel&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Create new class module:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Open the &lt;em&gt;Microsoft Visual Basic for Applications&lt;/em&gt; editor in Excel.&lt;/li&gt;
&lt;li&gt;Select &lt;em&gt;Insert -&amp;gt; Class Module&lt;/em&gt; on the main menubar&lt;/li&gt;
&lt;li&gt;Rename the new class module to "&lt;em&gt;WebClient&lt;/em&gt;"&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;strong&gt;Example&lt;/strong&gt;&lt;br /&gt;
To use the code, you shold create a new instance of the class and any of the public methods:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;em&gt;DownloadFile&lt;/em&gt;&amp;nbsp;- download a specific resource to a local file&lt;/li&gt;
&lt;li&gt;&lt;em&gt;UrlExists &lt;/em&gt;- check if a given URL exists&lt;/li&gt;
&lt;/ul&gt;&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: Consolas, "Courier New", Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}

.csharpcode .lnum { color: #606060; }
&lt;/style&gt;&lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; objClient &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; WebClient
&lt;span class="kwrd"&gt;Call&lt;/span&gt; objClient.DownloadFile(&lt;span class="str"&gt;"http://www.google.com"&lt;/span&gt;, &lt;span class="str"&gt;"c:\test.html"&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Dependencies&lt;/strong&gt;&lt;br /&gt;
The function "ReThrowError" is defined here:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/11/excel-vba-re-throw-errorexception.html"&gt;Re-throw Errors in VBA&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;strong&gt;Source Code&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: Consolas, "Courier New", Courier, Monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}

.csharpcode .lnum { color: #606060; }
&lt;/style&gt;&lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;' API&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; InternetOpen &lt;span class="kwrd"&gt;Lib&lt;/span&gt; &lt;span class="str"&gt;"wininet.dll"&lt;/span&gt; &lt;span class="kwrd"&gt;Alias&lt;/span&gt; &lt;span class="str"&gt;"InternetOpenA"&lt;/span&gt; (&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sAgent &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lAccessType &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sProxyName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sProxyBypass &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lFlags &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; InternetCloseHandle &lt;span class="kwrd"&gt;Lib&lt;/span&gt; &lt;span class="str"&gt;"wininet.dll"&lt;/span&gt; (&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; hInet &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; InternetReadFile &lt;span class="kwrd"&gt;Lib&lt;/span&gt; &lt;span class="str"&gt;"wininet.dll"&lt;/span&gt; (&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; hFile &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sBuffer &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lNumBytesToRead &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, lNumberOfBytesRead &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; InternetConnect &lt;span class="kwrd"&gt;Lib&lt;/span&gt; &lt;span class="str"&gt;"wininet.dll"&lt;/span&gt; &lt;span class="kwrd"&gt;Alias&lt;/span&gt; &lt;span class="str"&gt;"InternetConnectA"&lt;/span&gt; (&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; hInternetSession &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sServerName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; nServerPort &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sUsername &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sPassword &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lService &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lFlags &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lContext &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; InternetOpenUrl &lt;span class="kwrd"&gt;Lib&lt;/span&gt; &lt;span class="str"&gt;"wininet.dll"&lt;/span&gt; &lt;span class="kwrd"&gt;Alias&lt;/span&gt; &lt;span class="str"&gt;"InternetOpenUrlA"&lt;/span&gt; (&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; hInternetSession &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lpszUrl &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lpszHeaders &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; dwHeadersLength &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; dwFlags &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; dwContext &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; InternetGetLastResponseInfo &lt;span class="kwrd"&gt;Lib&lt;/span&gt; &lt;span class="str"&gt;"wininet.dll"&lt;/span&gt; &lt;span class="kwrd"&gt;Alias&lt;/span&gt; &lt;span class="str"&gt;"InternetGetLastResponseInfoA"&lt;/span&gt; (lpdwError &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lpszBuffer &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, lpdwBufferLength &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;

&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Enum&lt;/span&gt; EHttpQueryInfoLevel
    http_QUERY_CONTENT_TYPE = 1
    http_QUERY_CONTENT_LENGTH = 5
    http_QUERY_EXPIRES = 10
    http_QUERY_LAST_MODIFIED = 11
    http_QUERY_PRAGMA = 17
    http_QUERY_VERSION = 18
    http_QUERY_STATUS_CODE = 19
    http_QUERY_STATUS_TEXT = 20
    http_QUERY_RAW_HEADERS = 21
    http_QUERY_RAW_HEADERS_CRLF = 22
    http_QUERY_FORWARDED = 30
    http_QUERY_SERVER = 37
    http_QUERY_USER_AGENT = 39
    http_QUERY_SET_COOKIE = 43
    http_QUERY_REQUEST_METHOD = 45
    http_STATUS_DENIED = 401
    http_STATUS_PROXY_AUTH_REQ = 407
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Enum&lt;/span&gt;

&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; HttpQueryInfo &lt;span class="kwrd"&gt;Lib&lt;/span&gt; &lt;span class="str"&gt;"wininet.dll"&lt;/span&gt; &lt;span class="kwrd"&gt;Alias&lt;/span&gt; &lt;span class="str"&gt;"HttpQueryInfoA"&lt;/span&gt; (&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; hhttpRequest &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lInfoLevel &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByRef&lt;/span&gt; sBuffer &lt;span class="kwrd"&gt;As&lt;/span&gt; Any, &lt;span class="kwrd"&gt;ByRef&lt;/span&gt; lBufferLength &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByRef&lt;/span&gt; lIndex &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; HttpOpenRequest &lt;span class="kwrd"&gt;Lib&lt;/span&gt; &lt;span class="str"&gt;"wininet.dll"&lt;/span&gt; &lt;span class="kwrd"&gt;Alias&lt;/span&gt; &lt;span class="str"&gt;"HttpOpenRequestA"&lt;/span&gt; (&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; hHttpSession &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sVerb &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sObjectName &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sVersion &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sReferer &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; something &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lFlags &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lContext &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Declare&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; HttpSendRequest &lt;span class="kwrd"&gt;Lib&lt;/span&gt; &lt;span class="str"&gt;"wininet.dll"&lt;/span&gt; &lt;span class="kwrd"&gt;Alias&lt;/span&gt; &lt;span class="str"&gt;"HttpSendRequestA"&lt;/span&gt; (&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; hhttpRequest &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sHeaders &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lHeadersLength &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, sOptional &lt;span class="kwrd"&gt;As&lt;/span&gt; Any, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; lOptionalLength &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;

&lt;span class="rem"&gt;' Constants&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; INTERNET_FLAG_NO_CACHE_WRITE &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt; = &amp;amp;H4000000
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; INTERNET_FLAG_NO_UI &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt; = &amp;amp;H200
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; INTERNET_FLAG_EXISTING_CONNECT &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt; = &amp;amp;H20000000
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; INTERNET_FLAG_RELOAD &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt; = &amp;amp;H80000000

&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; INTERNET_OPEN_TYPE_PRECONFIG = 0
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; INTERNET_OPEN_TYPE_DIRECT = 1
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; INTERNET_OPEN_TYPE_PROXY = 3


&lt;span class="rem"&gt;' User Agent&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Const&lt;/span&gt; USER_AGENT = &lt;span class="str"&gt;"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"&lt;/span&gt;



&lt;span class="rem"&gt;' Open&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; OpenSession()
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; hSession &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;

    &lt;span class="rem"&gt;' Open internet connection&lt;/span&gt;
    hSession = InternetOpen(USER_AGENT, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)

    &lt;span class="rem"&gt;' Valid session?&lt;/span&gt;
    &lt;span class="kwrd"&gt;If&lt;/span&gt; (hSession = 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        &lt;span class="rem"&gt;' Error&lt;/span&gt;
        Err.Raise 1234, , &lt;span class="str"&gt;"Unable to open internet connection!"&lt;/span&gt;
        
        &lt;span class="rem"&gt;' Finished&lt;/span&gt;
        &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    
    &lt;span class="rem"&gt;' Get the value&lt;/span&gt;
    OpenSession = hSession
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;

&lt;span class="rem"&gt;' Close Handle&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; CloseHandle(&lt;span class="kwrd"&gt;ByRef&lt;/span&gt; hHandle &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;)
   &lt;span class="rem"&gt;' Valid handle?&lt;/span&gt;
   &lt;span class="kwrd"&gt;If&lt;/span&gt; (hHandle &amp;lt;&amp;gt; 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        &lt;span class="rem"&gt;' Close&lt;/span&gt;
        &lt;span class="kwrd"&gt;Call&lt;/span&gt; InternetCloseHandle(hHandle)
        
        &lt;span class="rem"&gt;' Clear handle&lt;/span&gt;
        hHandle = 0
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;


&lt;span class="rem"&gt;' Open Url&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; OpenUrl(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; hSession &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; strUrl &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;Optional&lt;/span&gt; &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; bRaiseError = &lt;span class="kwrd"&gt;True&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; hConnection &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    
    &lt;span class="rem"&gt;' Valid session?&lt;/span&gt;
    &lt;span class="kwrd"&gt;If&lt;/span&gt; (hSession = 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        Err.Raise 2345345, , &lt;span class="str"&gt;"The session is not set!"&lt;/span&gt;
        &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    
    &lt;span class="rem"&gt;' Open Url&lt;/span&gt;
    hConnection = InternetOpenUrl(hSession, strUrl, vbNullString, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; 0&amp;amp;, INTERNET_FLAG_EXISTING_CONNECT &lt;span class="kwrd"&gt;Or&lt;/span&gt; INTERNET_FLAG_RELOAD, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; 0&amp;amp;)

     &lt;span class="rem"&gt;' Valid file?&lt;/span&gt;
    &lt;span class="kwrd"&gt;If&lt;/span&gt; (hConnection = 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        &lt;span class="rem"&gt;' Error&lt;/span&gt;
        &lt;span class="kwrd"&gt;Call&lt;/span&gt; RaiseLastError
        
        &lt;span class="rem"&gt;' Exit&lt;/span&gt;
        &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;

    &lt;span class="rem"&gt;' Get the value&lt;/span&gt;
    OpenUrl = hConnection

&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;

&lt;span class="rem"&gt;' Raise Last Error&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; RaiseLastError()
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strErrorMessage &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lngErrorNumber &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;

    &lt;span class="rem"&gt;' Get the last error&lt;/span&gt;
    lngErrorNumber = Err.LastDllError
    
    &lt;span class="rem"&gt;' Valid error?&lt;/span&gt;
    &lt;span class="kwrd"&gt;If&lt;/span&gt; (lngErrorNumber &amp;lt;&amp;gt; 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        &lt;span class="rem"&gt;' Error&lt;/span&gt;
        Err.Raise lngErrorNumber, , &lt;span class="str"&gt;"DLL Error: "&lt;/span&gt; &amp;amp; &lt;span class="kwrd"&gt;CStr&lt;/span&gt;(lngErrorNumber)
    &lt;span class="kwrd"&gt;Else&lt;/span&gt;
        &lt;span class="rem"&gt;' Get the error&lt;/span&gt;
        &lt;span class="kwrd"&gt;If&lt;/span&gt; (GetLastResponseInfo(lngErrorNumber, strErrorMessage)) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="rem"&gt;' Raise error&lt;/span&gt;
            Err.Raise lngErrorNumber, , strErrorMessage
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;

&lt;span class="rem"&gt;' Get Last Response Info&lt;/span&gt;
&lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetLastResponseInfo(&lt;span class="kwrd"&gt;ByRef&lt;/span&gt; lngErrorNumber &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;, &lt;span class="kwrd"&gt;ByRef&lt;/span&gt; strErrorMessage &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; intResult &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lngBufferLength &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    
    &lt;span class="rem"&gt;' Get the required buffer size&lt;/span&gt;
    intResult = InternetGetLastResponseInfo(lngErrorNumber, strErrorMessage, lngBufferLength)
        
    &lt;span class="rem"&gt;' Valid length?&lt;/span&gt;
    &lt;span class="kwrd"&gt;If&lt;/span&gt; (lngErrorNumber &amp;lt;&amp;gt; 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        &lt;span class="rem"&gt;' Allcoate the buffer&lt;/span&gt;
        strErrorMessage = &lt;span class="kwrd"&gt;String&lt;/span&gt;(lngBufferLength, 0)
        
        &lt;span class="rem"&gt;' Retrieve the last respons info&lt;/span&gt;
        intResult = InternetGetLastResponseInfo(lngErrorNumber, strErrorMessage, lngBufferLength)
    
        &lt;span class="rem"&gt;' Get the error message&lt;/span&gt;
        GetLastResponseInfo = &lt;span class="kwrd"&gt;True&lt;/span&gt;
        &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    
    &lt;span class="rem"&gt;' Not an error&lt;/span&gt;
    GetLastResponseInfo = &lt;span class="kwrd"&gt;False&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;


&lt;span class="rem"&gt;' File Exists?&lt;/span&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; UrlExists(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; strUrl &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;
    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;GoTo&lt;/span&gt; ErrorHandler
    
    &lt;span class="kwrd"&gt;Const&lt;/span&gt; BUFFER_LENGTH &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt; = 255
    
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; hSession &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; hConnection &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strBuffer &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; * BUFFER_LENGTH
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; intBufferLength &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; intResult &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lngIndex &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strStatusCode &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; intStatusCode &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
    
    &lt;span class="rem"&gt;' Open Session&lt;/span&gt;
    hSession = OpenSession
    
    &lt;span class="rem"&gt;' Open the file&lt;/span&gt;
    hConnection = OpenUrl(hSession, strUrl, &lt;span class="kwrd"&gt;False&lt;/span&gt;)
    
    &lt;span class="rem"&gt;' Set the default bufferlength&lt;/span&gt;
    intBufferLength = BUFFER_LENGTH
    
    &lt;span class="rem"&gt;' Get the status code&lt;/span&gt;
    intResult = HttpQueryInfo(hConnection, http_QUERY_STATUS_CODE, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; strBuffer, intBufferLength, lngIndex)
    
    &lt;span class="rem"&gt;' Valid value?&lt;/span&gt;
    &lt;span class="kwrd"&gt;If&lt;/span&gt; (intResult &amp;lt;&amp;gt; 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        &lt;span class="rem"&gt;' Get the status code string&lt;/span&gt;
        strStatusCode = Left(strBuffer, intBufferLength)
        
        &lt;span class="rem"&gt;' Get the integer status code&lt;/span&gt;
        intStatusCode = &lt;span class="kwrd"&gt;CInt&lt;/span&gt;(strStatusCode)
        
        &lt;span class="rem"&gt;' Check the status code&lt;/span&gt;
        UrlExists = (intStatusCode = 200)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    
    &lt;span class="rem"&gt;' Close the connection&lt;/span&gt;
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; CloseHandle(hConnection)
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; CloseHandle(hSession)
    &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
    
ErrorHandler:
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; CloseHandle(hConnection)
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; CloseHandle(hSession)
    
    &lt;span class="rem"&gt;' Re-throw&lt;/span&gt;
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; ReThrowError(Err)
&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;


&lt;span class="rem"&gt;' Download File&lt;/span&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; DownloadFile(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; strUrl &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; strFilename &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;)
    &lt;span class="kwrd"&gt;On&lt;/span&gt; &lt;span class="kwrd"&gt;Error&lt;/span&gt; &lt;span class="kwrd"&gt;GoTo&lt;/span&gt; ErrorHandling
    
    &lt;span class="rem"&gt;' Buffer size&lt;/span&gt;
    &lt;span class="kwrd"&gt;Const&lt;/span&gt; BUFFER_SIZE &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; = 4096
    
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; hSession &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; hConnection &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; strBuffer &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; * BUFFER_SIZE
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; intFile &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; lngRead &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Long&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; intResult &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;

    &lt;span class="rem"&gt;' Open session&lt;/span&gt;
    hSession = OpenSession()

    &lt;span class="rem"&gt;' Open the file&lt;/span&gt;
    hConnection = OpenUrl(hSession, strUrl)
    
    &lt;span class="rem"&gt;' Find free file&lt;/span&gt;
    intFile = FreeFile
    
    &lt;span class="rem"&gt;' Create file&lt;/span&gt;
    Open strFilename &lt;span class="kwrd"&gt;For&lt;/span&gt; Binary &lt;span class="kwrd"&gt;As&lt;/span&gt; #intFile
    
        &lt;span class="kwrd"&gt;Do&lt;/span&gt;
            &lt;span class="rem"&gt;' Read the data&lt;/span&gt;
            intResult = InternetReadFile(hConnection, strBuffer, BUFFER_SIZE, lngRead)
    
            &lt;span class="rem"&gt;' Valid function?&lt;/span&gt;
            &lt;span class="kwrd"&gt;If&lt;/span&gt; (intResult &amp;lt;&amp;gt; 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            
                &lt;span class="rem"&gt;' Valid number of bytes read?&lt;/span&gt;
                &lt;span class="kwrd"&gt;If&lt;/span&gt; (lngRead &amp;gt; 0) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                
                    &lt;span class="rem"&gt;' Is less than buffer size?&lt;/span&gt;
                    &lt;span class="kwrd"&gt;If&lt;/span&gt; (lngRead &amp;lt; BUFFER_SIZE) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                    
                        &lt;span class="rem"&gt;' Get only the relevant data&lt;/span&gt;
                        strBuffer = Left(strBuffer, lngRead)
                    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
                
                    &lt;span class="rem"&gt;' Write the data&lt;/span&gt;
                    Put #intFile, , strBuffer
                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
            
        &lt;span class="kwrd"&gt;Loop&lt;/span&gt; &lt;span class="kwrd"&gt;While&lt;/span&gt; (lngRead &amp;gt; 0)
        
    &lt;span class="rem"&gt;' Close the file&lt;/span&gt;
    Close #intFile
    
ExitMe:
    &lt;span class="rem"&gt;' Close connection&lt;/span&gt;
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; CloseHandle(hConnection)
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; CloseHandle(hSession)
    &lt;span class="kwrd"&gt;Exit&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
    
ErrorHandling:
    &lt;span class="rem"&gt;' Close connection&lt;/span&gt;
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; CloseHandle(hConnection)
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; CloseHandle(hSession)
     
    &lt;span class="rem"&gt;' Rethrow&lt;/span&gt;
    &lt;span class="kwrd"&gt;Call&lt;/span&gt; ReThrowError(Err)

&lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/aKyyRV4ZuQg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/4342602743448446137/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/11/excel-vba-download-files-from-internet.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4342602743448446137?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4342602743448446137?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/aKyyRV4ZuQg/excel-vba-download-files-from-internet.html" title="Excel VBA: Download files from the Internet" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>8</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/11/excel-vba-download-files-from-internet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcMQ3c_eip7ImA9WhRTEUs.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-1875447515028345956</id><published>2011-11-01T18:04:00.000+01:00</published><updated>2011-11-01T18:04:42.942+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T18:04:42.942+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="exception" /><category scheme="http://www.blogger.com/atom/ns#" term="error" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>Excel VBA: Re-throw error/exception</title><content type="html">The current version of Microsoft Excel does not support the new Try/Catch blocks found in VB.net or any other modern programming languages. To handle errors within a procedure the "&lt;em&gt;On Error Goto&lt;/em&gt;" statement must be used. When used, VBA expects the procedure to handle the error by either displaying a message visible to the user or just ignore it and continue as before. &lt;br /&gt;
&lt;br /&gt;
However, if you are a Java or .NET developer you might want to restore the state of the application when a error is caught and then re-throw the error to let another part of the application handle it, just like when the "&lt;em&gt;using&lt;/em&gt;" statement or &lt;em&gt;throw/catch&lt;/em&gt;&amp;nbsp;blocks are applied in C# code. There is no direct way of re-throwing a error in VBA, like &lt;em&gt;throw&lt;/em&gt; or &lt;em&gt;throw [Exception]&lt;/em&gt; in Java and .NET. The correct way of solving this challenge is to use the &lt;em&gt;Err.Raise&lt;/em&gt; method, and specify all the existing error parameters in the following way:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue;"&gt;Sub&lt;/span&gt; Test()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;On Error GoTo&lt;/span&gt; ErrorHandler&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: lime;"&gt; &lt;/span&gt;&lt;span style="color: #38761d;"&gt;' Do Something&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Exit Sub&lt;/span&gt;&lt;br /&gt;
ErrorHandler:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;span style="color: #38761d;"&gt;&amp;nbsp; ' Restore state&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Re-throw/Raise existing error&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile,&amp;nbsp;&amp;nbsp;&amp;nbsp; Err.HelpContext&lt;br /&gt;
&lt;span style="color: blue;"&gt;End Sub&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black;"&gt;A custom method can be made to simplifying the re-throwing of errors:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #38761d;"&gt;' Rethrow&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue;"&gt;Public Sub&lt;/span&gt; ReThrowError(&lt;span style="color: blue;"&gt;ByVal &lt;/span&gt;objError &lt;span style="color: blue;"&gt;As&lt;/span&gt; ErrObject)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #38761d;"&gt;' Raise&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Err.Raise objError.Number, objError.Source, objError.Description, objError.HelpFile, objError.HelpContext&lt;br /&gt;
&lt;span style="color: blue;"&gt;End Sub&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/K9Th9cH4h8c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/1875447515028345956/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/11/excel-vba-re-throw-errorexception.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1875447515028345956?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1875447515028345956?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/K9Th9cH4h8c/excel-vba-re-throw-errorexception.html" title="Excel VBA: Re-throw error/exception" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/11/excel-vba-re-throw-errorexception.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMFR3g_fSp7ImA9WhdaE0g.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-4417798038592570726</id><published>2011-10-23T09:53:00.000+02:00</published><updated>2011-10-23T09:53:36.645+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-23T09:53:36.645+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term="decompile" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="reflector" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>.NET: Alternatives to .NET Reflector</title><content type="html">.NET Reflector is dead, long live ILSpy. Well, .NET Reflector is not really dead, as you might already know, but you now have to pay if you want to use the disassembler. Below we have listed the most common alternatives to the previously popular tool:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://wiki.sharpdevelop.net/ILSpy.ashx"&gt;ILSpy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://confluence.jetbrains.net/display/NETPEEK/dotPeek+Early+Access+Program"&gt;dotPeek&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/decompiler.aspx"&gt;JustDecompile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cciast.codeplex.com/" rel="nofollow" target="_blank"&gt;Common Compiler Infrastructure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mono-project.com/Cecil" rel="nofollow" target="_blank"&gt;Mono Cecil&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://sites.google.com/site/kalirosupport/home" rel="nofollow" target="_blank"&gt;Kaliro&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://sourceforge.net/projects/dile/" rel="nofollow" target="_blank"&gt;Dotnet IL Editor (DILE)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;Personally I prefer to use the ILSpy because it is open-source, and works in the similar way as the old .NET reflector.&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/GqKFn8eqW0o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/4417798038592570726/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/net-alternatives-to-net-reflector.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4417798038592570726?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4417798038592570726?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/GqKFn8eqW0o/net-alternatives-to-net-reflector.html" title=".NET: Alternatives to .NET Reflector" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/net-alternatives-to-net-reflector.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8HRXk5eip7ImA9WhdaE0g.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-5247162674223363530</id><published>2011-10-23T09:09:00.001+02:00</published><updated>2011-10-23T09:10:34.722+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-23T09:10:34.722+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="url decode" /><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="split" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="url" /><category scheme="http://www.blogger.com/atom/ns#" term="query argument" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="url encode" /><title>JavaScript: Get URL Query Argument</title><content type="html">Often I have the need to parse the URL query to retrieve the value of a specific named argument. There is no direct way of doing this is JavaScript, so this requires a custom function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;function&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; findQueryArgument (strQuery, strArgumentName) {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;// Valid query?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (strQuery) {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;// Split the parameteres&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt; arrParameters = strQuery.split(&lt;span style="color: maroon;"&gt;"&amp;amp;"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;// Walk through the parameters&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;var&lt;/span&gt; i = 0; i &amp;lt; arrParameters.length; i++) {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;// Get the key/value pair&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt; arrPair = arrParameters[i].split(&lt;span style="color: maroon;"&gt;"="&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;// Is this the event argument?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (arrPair[0] == strArgumentName) {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;&lt;span style="color: darkgreen;"&gt;// Has value?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (arrPair.length &amp;gt; 1) {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;&lt;span style="color: darkgreen;"&gt;// Get the value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; arrPair[1];&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;&lt;span style="color: darkgreen;"&gt;// Not set&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: darkgreen;"&gt;// Not found&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: maroon;"&gt;''&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
The &lt;strong&gt;strQuery&lt;/strong&gt; argument is the full URL query i.e. a=val1&amp;amp;b=val2 etc. The full URL should not be included.&lt;br /&gt;
&lt;strong&gt;strArgumentName&lt;/strong&gt; is the name of the argument you're looking for, i.e. a or b.&lt;br /&gt;
&lt;br /&gt;
Please notice that the returned value is &lt;strong&gt;URL encoded&lt;/strong&gt;. To extract the actual string value you need to use the built in JavaScript method &lt;strong&gt;&lt;em&gt;unescape&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
Here is an example:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: darkgreen; font-family: Consolas; font-size: x-small;"&gt;&lt;span style="color: darkgreen; font-family: Consolas; font-size: x-small;"&gt;&lt;span style="color: darkgreen; font-family: Consolas; font-size: x-small;"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: darkgreen; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;// Query string&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;var&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="color: black;"&gt; strQuery = &lt;/span&gt;&lt;span style="color: maroon;"&gt;'a=val1&amp;amp;b=val2'&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: darkgreen; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;// Get the value of the 'b' argument&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;var&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="color: black;"&gt; strEscaped = findQueryArgument(findQueryArgument, strQuery, &lt;/span&gt;&lt;span style="color: maroon;"&gt;'b'&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: darkgreen; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;// Get the unescaped value&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;var&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="color: black;"&gt; strUnescaped = unescape(strEscaped);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: darkgreen; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;// Display the value&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="color: black;"&gt;alert(strUnescaped);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/crTYIu_u4Dw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/5247162674223363530/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/javascript-get-url-query-argument.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/5247162674223363530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/5247162674223363530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/crTYIu_u4Dw/javascript-get-url-query-argument.html" title="JavaScript: Get URL Query Argument" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/javascript-get-url-query-argument.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQBSX47fSp7ImA9WhdbEko.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-6341935403297397846</id><published>2011-10-10T20:44:00.001+02:00</published><updated>2011-10-10T20:45:58.005+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T20:45:58.005+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="sum" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>Excel VBA: Sum Values IF</title><content type="html">Below we have made a function which sums the values of one column/range given that the value of another column is equal to a fixed value. This function ignores the N/A values, which is not the case for the built-in function called &lt;em&gt;SumIf&lt;/em&gt;&amp;nbsp;in Excel. If the built-in function finds a N/A value&amp;nbsp;the function returns&amp;nbsp;N/A.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;' SUM Value If&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;' Ignores N/A&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Function&lt;/span&gt; SumValueIf(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; objRange &lt;span style="color: blue;"&gt;As&lt;/span&gt; Range, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; objCriteria &lt;span style="color: blue;"&gt;As&lt;/span&gt; Range, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; objSumRange &lt;span style="color: blue;"&gt;As&lt;/span&gt; Range) &lt;span style="color: blue;"&gt;As&lt;/span&gt; Currency&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; intRow &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objRangeValue &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Object&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objCriteriaValue &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Object&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objValue &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Object&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; dblValue &lt;span style="color: blue;"&gt;As&lt;/span&gt; Currency&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; dblSum &lt;span style="color: blue;"&gt;As&lt;/span&gt; Currency&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the criteria value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;objCriteriaValue = objCriteria(1, 1)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Walk through the rows&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;For&lt;/span&gt; intRow = 1 &lt;span style="color: blue;"&gt;To&lt;/span&gt; objRange.Rows.Count &lt;span style="color: blue;"&gt;Step&lt;/span&gt; 1&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the current value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;objRangeValue = objRange(intRow, 1)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Compare values&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;If&lt;/span&gt; (objRangeValue = objCriteriaValue) &lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;objValue = objSumRange(intRow, 1)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Is valid number?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Ignore any strings, #N/A, #Error, etc.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;If&lt;/span&gt; (IsNumeric(objValue)) &lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;' Get the value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;dblValue = CCur(objValue)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;&lt;span style="color: green;"&gt;' Sum&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&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;/span&gt;dblSum = dblSum + dblValue&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;SumValueIf = dblSum&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Function&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
The function can be used in the following way:&lt;br /&gt;
&lt;br /&gt;
= SumValueIf(A1:A10; "abc"; B1:B10)&lt;br /&gt;
&lt;br /&gt;
where A1:A10 is the compare column. Only sum the value in column B1:B10 if the value in column A is equal to "abc".&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/h_ZFI5A5NIs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/6341935403297397846/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/excel-vba-sum-values-if.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/6341935403297397846?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/6341935403297397846?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/h_ZFI5A5NIs/excel-vba-sum-values-if.html" title="Excel VBA: Sum Values IF" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/excel-vba-sum-values-if.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ADQXg7cSp7ImA9WhdbEko.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-3756742787329247002</id><published>2011-10-10T20:36:00.000+02:00</published><updated>2011-10-10T20:36:10.609+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T20:36:10.609+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="array" /><category scheme="http://www.blogger.com/atom/ns#" term="variant" /><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="string" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="convert" /><title>Excel VBA: Convert Variant Array to String Array</title><content type="html">To simplify the conversion of a variant array to a string array we have made a set of utility functions.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;' Array Variant to String&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Function&lt;/span&gt; VariantArrayToStringArray(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; arrVariants &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Varian&lt;/span&gt;t) &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; arrStrings() &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the string array&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Call&lt;/span&gt; ParamArrayToStringArray(arrVariants, arrStrings)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the string array&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;VariantArrayToStringArray = arrStrings&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Function&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;' Array Variant to String&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; ParamArrayToStringArray(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; arrVariants &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Varian&lt;/span&gt;t, &lt;span style="color: blue;"&gt;ByRef&lt;/span&gt; arrStrings() &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; intLength &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Handle the array&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Call&lt;/span&gt; ParamArrayToStringArrayInternal(arrVariants, arrStrings, intLength)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;' Array Variant to String&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;Private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; ParamArrayToStringArrayInternal(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; arrVariants &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Varian&lt;/span&gt;t, &lt;span style="color: blue;"&gt;ByRef&lt;/span&gt; arrStrings() &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;, &lt;span style="color: blue;"&gt;ByRef&lt;/span&gt; intLength &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Parameter is array?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;If&lt;/span&gt; (IsArray(arrVariants)) &lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; i &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objValue &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Varian&lt;/span&gt;t&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Walk through the specified partner objects&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;For&lt;/span&gt; i = LBound(arrVariants) &lt;span style="color: blue;"&gt;To&lt;/span&gt; UBound(arrVariants) &lt;span style="color: blue;"&gt;Step&lt;/span&gt; 1&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;objValue = arrVariants(i)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Array to string&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Call&lt;/span&gt; ParamArrayToStringArrayInternal(objValue, arrStrings, intLength)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Else&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Next item&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;intLength = intLength + 1&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Expand array&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;ReDim&lt;/span&gt; &lt;span style="color: blue;"&gt;Preserve&lt;/span&gt; arrStrings(1 &lt;span style="color: blue;"&gt;To&lt;/span&gt; intLength)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Set the value&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;arrStrings(intLength) = &lt;span style="color: blue;"&gt;CStr&lt;/span&gt;(arrVariants)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/4mn0x1WI3G0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/3756742787329247002/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/excel-vba-convert-variant-array-to.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/3756742787329247002?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/3756742787329247002?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/4mn0x1WI3G0/excel-vba-convert-variant-array-to.html" title="Excel VBA: Convert Variant Array to String Array" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/excel-vba-convert-variant-array-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCRng6eCp7ImA9WhdbEko.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-1421972166164673411</id><published>2011-10-10T20:28:00.001+02:00</published><updated>2011-10-10T20:31:07.610+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T20:31:07.610+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="group" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>Excel VBA: Expand and Collapse Group</title><content type="html">In Excel it is possible to group rows and columns. To expand or collapse a a group you can&amp;nbsp;use the VBA method&amp;nbsp;called &lt;em&gt;ShowLevels&lt;/em&gt;. In the example below we are expanding a row group. We have also disabled automatic recalculation to improve the performance. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;' Show Level&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; ShowGroupLevel(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; intRowLevel &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; intCalculation &lt;span style="color: blue;"&gt;As&lt;/span&gt; XlCalculation&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the old calculation state&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;intCalculation = Application.Calculation&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Disable re-calculation&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Application.Calculation = xlCalculationManual&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Show the specified level (expanded)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;On&lt;/span&gt; &lt;span style="color: blue;"&gt;Error&lt;/span&gt; &lt;span style="color: blue;"&gt;Resume&lt;/span&gt; &lt;span style="color: blue;"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Call&lt;/span&gt; ActiveWorkSheet.Outline.ShowLevels(RowLevels:=intRowLevel)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;On&lt;/span&gt; &lt;span style="color: blue;"&gt;Error&lt;/span&gt; &lt;span style="color: blue;"&gt;GoTo 0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Restore automatic calculation&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Application.Calculation = intCalculation&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;br /&gt;
Please notice that expand and collapse work in the same way. Collapsing a group is the same as only displaying the first level. Expand is the same as showing level 2 or more.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/oHUwH7uqmeQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/1421972166164673411/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/excel-vba-expand-and-collapse-group.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1421972166164673411?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1421972166164673411?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/oHUwH7uqmeQ/excel-vba-expand-and-collapse-group.html" title="Excel VBA: Expand and Collapse Group" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/excel-vba-expand-and-collapse-group.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMFR304eSp7ImA9WhJVGE4.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-4523447432100115652</id><published>2011-10-10T20:13:00.003+02:00</published><updated>2012-09-05T10:06:56.331+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-05T10:06:56.331+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="row" /><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="range" /><category scheme="http://www.blogger.com/atom/ns#" term="selection" /><title>Excel VBA: Get all selected rows</title><content type="html">If the user does does a selection of rows in Excel, the selection can contain multiple &lt;em&gt;areas&lt;/em&gt;. An area is a subselection of rows created when the user presses the Shift button while doing a multiselect.&amp;nbsp;In VBA we need to handle each area independently to be able to retrieve all the selected rows.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: green;"&gt;&lt;span style="font-family: Consolas; font-size: x-small;"&gt;' Example&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: green;"&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; Test()&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objSelection &lt;span style="color: blue;"&gt;As&lt;/span&gt; Range&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objSelectionArea &lt;span style="color: blue;"&gt;As&lt;/span&gt; Range&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objCell &lt;span style="color: blue;"&gt;As&lt;/span&gt; Range&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; intRow &lt;span style="color: blue;"&gt;As&lt;/span&gt;&amp;nbsp;Integer&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the current selection&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set &lt;/span&gt;objSelection = Application.Selection&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Walk through the areas&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;For&lt;/span&gt; &lt;span style="color: blue;"&gt;Each&lt;/span&gt; objSelectionArea &lt;span style="color: blue;"&gt;In&lt;/span&gt; objSelection.Areas&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Walk through the rows&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;For&lt;/span&gt; intRow = 1 &lt;span style="color: blue;"&gt;To&lt;/span&gt; objSelectionArea.Rows.Count &lt;span style="color: blue;"&gt;Step&lt;/span&gt; 1&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the row reference&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set &lt;/span&gt;objCell = objSelectionArea.Rows(intRow)&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the actual row index (in the worksheet).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' The other row index is relative to the collection.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;intActualRow = objCell.Row&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get any cell value by using the actual row index&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Example:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;strName = objNameRange(intActualRow, 1).value&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
In the example we have not defined the variables &lt;em&gt;strName &lt;/em&gt;and &lt;em&gt;objNameRange&lt;/em&gt;. For your reference the variables are defined as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; strName &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;
&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objNameRange &lt;span style="color: blue;"&gt;As&lt;/span&gt; Range&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;
&lt;br /&gt;&lt;/div&gt;
objNameRange can be any range in your selected worksheet.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/iuU_smcVzzs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/4523447432100115652/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/excel-vba-get-all-selected-rows.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4523447432100115652?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4523447432100115652?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/iuU_smcVzzs/excel-vba-get-all-selected-rows.html" title="Excel VBA: Get all selected rows" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>5</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/excel-vba-get-all-selected-rows.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cMRH47eCp7ImA9WhdbEks.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-735721057728216039</id><published>2011-10-10T19:36:00.006+02:00</published><updated>2011-10-10T19:51:25.000+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T19:51:25.000+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MAPI" /><category scheme="http://www.blogger.com/atom/ns#" term="outlook" /><category scheme="http://www.blogger.com/atom/ns#" term="excel" /><category scheme="http://www.blogger.com/atom/ns#" term="office" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="vba" /><category scheme="http://www.blogger.com/atom/ns#" term="e-mail" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>Excel VBA: Send E-mail from Excel</title><content type="html">There are several ways to send e-mail from Excel using Microsoft Outlook. &lt;br /&gt;
&lt;br /&gt;
It is possible to use the built-in function &lt;em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa203718(v=office.11).aspx"&gt;ActiveWorkbook.SendMail&lt;/a&gt;&lt;/em&gt;. However, it only allows simple e-mails to be created, and there is no way to add attachments.&lt;br /&gt;
&lt;br /&gt;
In this example we are going to use the COM library of Microsoft Outlook to get more control. Attachments are not covered in this example.&lt;br /&gt;
&lt;br /&gt;
We start by checking if an instance of Outlook is already running. To be independent of the installed version of Outlook we use the &lt;span style="font-family: Consolas; font-size: x-small;"&gt;GetObject&lt;/span&gt; to try to get an existing instance. Another option would have been to reference the Outlook library directly, but then we are required to update the reference every time a new version&amp;nbsp;of Microsoft Office is installed. If no instance is running, we start Outlook by calling &lt;span style="font-family: Consolas; font-size: x-small;"&gt;CreateObject.&lt;/span&gt; Please remember to close down Outlook when you are finished.&amp;nbsp; Otherwise you will get multiple instance of the same application without the user knowing it. &lt;br /&gt;
&lt;br /&gt;
We get a reference to the current users inbox by calling &lt;span style="font-family: Consolas; font-size: x-small;"&gt;getDefaultFolder(6)&lt;/span&gt;.The value 6 is a constant referring to the Inbox. If you used a reference to the COM library, you would have used the enum value &lt;em&gt;olFolderInbox&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;' Send E-mail&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;' strTo - Recipients. List of e-mails (separated by ';')&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;Public&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; SendEmail(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; strTo &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objOutlookApp &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Object&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objEmail &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Object&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objMapi &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Object&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; objInboxFolder &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Object&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Valid e-mails?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;If&lt;/span&gt; (strTo = &lt;span style="color: #a31515;"&gt;""&lt;/span&gt;) &lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Error&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;MsgBox &lt;span style="color: #a31515;"&gt;"No e-mails have been set!"&lt;/span&gt;, vbExclamation, &lt;span style="color: #a31515;"&gt;"No e-mails"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Finished&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Exit Sub&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Attach to outlook&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;On&lt;/span&gt; &lt;span style="color: blue;"&gt;Error&lt;/span&gt; &lt;span style="color: blue;"&gt;Resume&lt;/span&gt; &lt;span style="color: blue;"&gt;Next&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Set objOutlookApp = GetObject(, &lt;span style="color: #a31515;"&gt;"Outlook.Application"&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;On&lt;/span&gt; &lt;span style="color: blue;"&gt;Error&lt;/span&gt; &lt;span style="color: blue;"&gt;GoTo 0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Is Outlook running?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;If&lt;/span&gt; (objOutlookApp &lt;span style="color: blue;"&gt;Is&lt;/span&gt; &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt;) &lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Create new instance of outlook&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Set objOutlookApp = CreateObject(&lt;span style="color: #a31515;"&gt;"Outlook.Application"&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the MAPI namespace (e-mails)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Set objMapi = objOutlookApp.GetNamespace(&lt;span style="color: #a31515;"&gt;"MAPI"&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Get the inbox folder&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Set objInboxFolder = objMapi.getDefaultFolder(6)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Display the inbox folder (make outlook visible)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Call&lt;/span&gt; objInboxFolder.Display&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Create the new e-mail&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Set objEmail = objOutlookApp.CreateItem(0)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Set the properties of the new email&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;With&lt;/span&gt; objEmail&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Set the recipients&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;.To = strTo&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;' Show the message&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Call&lt;/span&gt; .Display&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Resolve all recipients (Same as pressing the "Check Names" button)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Call&lt;/span&gt; .Recipients.ResolveAll&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;With&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;' Free memory&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Set objEmail = &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Set objOutlookApp = &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt;End&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/Aps1jAMBVvc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/735721057728216039/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/excel-vba-send-e-mail-from-excel.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/735721057728216039?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/735721057728216039?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/Aps1jAMBVvc/excel-vba-send-e-mail-from-excel.html" title="Excel VBA: Send E-mail from Excel" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/excel-vba-send-e-mail-from-excel.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cMQHw7fSp7ImA9WhdbEUg.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-9146871784288645115</id><published>2011-10-08T19:30:00.002+02:00</published><updated>2011-10-09T13:18:01.205+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-09T13:18:01.205+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="template" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="blogspot" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><category scheme="http://www.blogger.com/atom/ns#" term="webdesign" /><title>Blogger: Free Templates for your Blog</title><content type="html">Want to have a proffessional looking blog on &lt;a href="http://blogger.com/"&gt;blogger.com&lt;/a&gt; (blogspot.com)? The available templates for blogs on blogger.com are very limited. You can download free templates from the following sites:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://btemplates.com/"&gt;B Templates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.bloggertemplatesfree.com/"&gt;Blogger Templates Free&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ourblogtemplates.com/"&gt;Our Blogger Templates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.eblogtemplates.com/"&gt;eblog Templates&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/T7i2Rdjc8Tc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/9146871784288645115/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/blogger-free-templates-for-your-blog.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/9146871784288645115?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/9146871784288645115?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/T7i2Rdjc8Tc/blogger-free-templates-for-your-blog.html" title="Blogger: Free Templates for your Blog" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/blogger-free-templates-for-your-blog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAARHoyfyp7ImA9WhdbEUk.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-4543763776801876037</id><published>2011-10-08T19:06:00.001+02:00</published><updated>2011-10-09T09:52:25.497+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-09T09:52:25.497+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="free" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="facebook app" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="webhosting" /><category scheme="http://www.blogger.com/atom/ns#" term="bandwidth" /><category scheme="http://www.blogger.com/atom/ns#" term="storage" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="free ssl" /><title>Facebook Dev: Free webhosting for your App</title><content type="html">If you're a student and want to learn Facebook App development, or just need a free webhost for your app, you can apply for free webhosting from numerous free webhosting providers. &lt;br /&gt;
&lt;br /&gt;
If you are developing your Facebook App in ASP.NET, check out the list of free webhosts that support &lt;strong&gt;ASP.NET&lt;/strong&gt; and &lt;strong&gt;Microsoft SQL Server&lt;/strong&gt;:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/10/webhosting-free-webhosting-for-aspnet.html"&gt;Free webhosting for ASP.NET &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
Since there are few licenses related to setting up a webserver running &lt;strong&gt;Linux&lt;/strong&gt;, it is much easier to find a free webhost if your Facebook application does not require a Windows server.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://0000cost.com/"&gt;0000cost&lt;/a&gt; (1.5 GB storage, 15 GB bandwidth)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://freedomainsite.com/"&gt;Free domain site&lt;/a&gt; (1 GB storage, unlimited bandwidth)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bammz.com/"&gt;Bammz&lt;/a&gt; (unlimited storage and bandwidth)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.heliohost.org/"&gt;HelioHost&lt;/a&gt;&amp;nbsp;(500 MB, unlimted bandwidth)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://somee.com/"&gt;Somee&lt;/a&gt; (150 MB storage, 5 GB transfer)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.nofeehost.com/"&gt;No Fee Host&lt;/a&gt; (100 MB storage)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.7host.com/free_hosting/free_hosting.asp"&gt;7 Host&lt;/a&gt; (50 MB storage)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.brinkster.com/"&gt;Brinkster&lt;/a&gt;&amp;nbsp;(30 MB storage, 2 TB bandwidth)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://10khost.com/"&gt;10k Host&lt;/a&gt;&amp;nbsp;(unknown storage and bandwidth)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.nextmill.net/freehosting.php"&gt;Millenium Systems&lt;/a&gt; (only for webdesigners)&lt;/li&gt;
&lt;/ol&gt;Please notice that the webhosts running Windows servers and ASP.NET normally also provide support for PHP and MySQL databases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also get free SSL certificates for your webserver (which is required from October 1st for all Facebook Apps):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&amp;nbsp;&lt;a href="http://www.lazerwire.com/2011/10/facebook-dev-free-ssl-certificates.html"&gt;Free SSL Certificates&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/AcFdwNBApLs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/4543763776801876037/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/facebook-dev-free-webhosting-for-your.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4543763776801876037?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4543763776801876037?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/AcFdwNBApLs/facebook-dev-free-webhosting-for-your.html" title="Facebook Dev: Free webhosting for your App" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/facebook-dev-free-webhosting-for-your.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8AQXc6fSp7ImA9WhdbEEQ.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-5077247322104189691</id><published>2011-10-08T18:42:00.002+02:00</published><updated>2011-10-08T18:54:00.915+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-08T18:54:00.915+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MS SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="free" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="webhosting" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>Webhosting: Free webhosting for ASP.NET</title><content type="html">Believe it or not, it is possible to host your ASP.NET application for free. Storage, bandwidth, etc. is of course limited, but it is a good offer for students and test applications.&lt;br /&gt;
&lt;br /&gt;
Below we have listed different hosts that offer free ASP.NET hosting:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://freeaspwebhosting.org/"&gt;Free ASP Web Hosting&lt;/a&gt; (2 GB storage, 20 GB bandwidth, includes MS SQL)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.webhostforasp.net/"&gt;Web Host for ASP.net&lt;/a&gt; (150 MB storage)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://somee.com/"&gt;Somee&lt;/a&gt; (150 MB storage, 5 GB transfer)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.asphost4free.com/"&gt;AspHost4Free&lt;/a&gt; (100 MB storage, unlimited bandwidth)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://freedomainsite.com/"&gt;Free domain site&lt;/a&gt; (1 GB storage, unlimited bandwidth)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.7host.com/free_hosting/free_hosting.asp"&gt;7 Host&lt;/a&gt; (50 MB storage)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.aspspider.com/"&gt;ASP Spider&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.brinkster.com/"&gt;Brinkster&lt;/a&gt;&amp;nbsp;(30 MB storage, 2 TB bandwidth)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.heliohost.org/"&gt;HelioHost&lt;/a&gt; (using Mono Project on Linux servers)&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;You can also get free SSL certificates for your webserver:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&amp;nbsp;&lt;a href="http://www.lazerwire.com/2011/10/facebook-dev-free-ssl-certificates.html"&gt;Free SSL Certificates&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/u5aUyHdeurE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/5077247322104189691/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/webhosting-free-webhosting-for-aspnet.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/5077247322104189691?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/5077247322104189691?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/u5aUyHdeurE/webhosting-free-webhosting-for-aspnet.html" title="Webhosting: Free webhosting for ASP.NET" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/webhosting-free-webhosting-for-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cAQnw6cSp7ImA9WhdbEEU.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-1885566008185762850</id><published>2011-10-08T17:48:00.001+02:00</published><updated>2011-10-08T17:50:43.219+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-08T17:50:43.219+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="codeplex" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="facebook" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="facebook app" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="SDK" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Facebook Dev: Choosing a SDK for ASP.NET</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://facebooksdk.codeplex.com/" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" kca="true" src="http://download.codeplex.com/Download?ProjectName=facebooksdk&amp;amp;DownloadId=170794&amp;amp;Build=18207" /&gt;&lt;/a&gt;&lt;/div&gt;When first deciding to create a Facebook App in ASP.NET&amp;nbsp;I was struggling to find a up to date Facebook SDK&amp;nbsp;for .NET. Some of the SDKs contains&amp;nbsp;very low level functions, while others don't support the latest features. When selecting&amp;nbsp;SDK you also have to make sure that the "new" &lt;a href="http://developers.facebook.com/docs/authentication/signed_request/"&gt;&lt;em&gt;signed_request&lt;/em&gt;&lt;/a&gt;&amp;nbsp;parameter is used by the framework. From October 1st 2011 all Facebook Apps and Facebook Pages must use this parameter to get information about the current user, page id, access token etc.&lt;br /&gt;
&lt;br /&gt;
At the time of writing, it seems like it is only the offical &lt;a href="http://facebooksdk.codeplex.com/"&gt;Facebook SDK&lt;/a&gt; at CodePlex which is satisfying all the requirements when it comes to Facebook Development in .NET.&lt;br /&gt;
Unfortunately, the SDK contains a lot of bugs, and is very hard to debug if you happens to find one.&lt;br /&gt;
&lt;br /&gt;
Personally I was forced to write most of my Facebook code from scratch without using the Facebook SDK due to all the bugs.&lt;br /&gt;
&lt;br /&gt;
You can find the documentation of the Facebook API at the &lt;a href="http://developers.facebook.com/"&gt;Developer area&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/awWDYBPoudo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/1885566008185762850/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/facebook-dev-choosing-sdk-for-aspnet.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1885566008185762850?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1885566008185762850?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/awWDYBPoudo/facebook-dev-choosing-sdk-for-aspnet.html" title="Facebook Dev: Choosing a SDK for ASP.NET" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/facebook-dev-choosing-sdk-for-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8MQHk4eyp7ImA9WhdbEUg.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-7817450746653536166</id><published>2011-10-08T16:32:00.002+02:00</published><updated>2011-10-09T12:08:01.733+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-09T12:08:01.733+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="transparent" /><category scheme="http://www.blogger.com/atom/ns#" term="png" /><category scheme="http://www.blogger.com/atom/ns#" term="internet explorer" /><category scheme="http://www.blogger.com/atom/ns#" term="ix web" /><category scheme="http://www.blogger.com/atom/ns#" term="ie" /><category scheme="http://www.blogger.com/atom/ns#" term="picture" /><category scheme="http://www.blogger.com/atom/ns#" term="css" /><title>CSS: Support for transparent PNG in Internet Explorer</title><content type="html">Versions prior to Internet Explorer 7&amp;nbsp;has limited support for transparent PNGs. To enable transparent PNGs in IE 6 you should use the following statement in your CSS:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #274e13;"&gt;&amp;lt;!--[if lt IE 7]&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;lt;style type='text/css'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;.some_class {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; background:none;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/x.png', sizingMethod='scale');&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;span style="color: #274e13;"&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Opacity Bug in IE&lt;/strong&gt;&lt;br /&gt;
If you specify the opacity (transparency) for a already transparent PNG in IE 7 and 8, the transparent area will turn totally black. If you use a transparent PNG together with f. example &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; plug-ins, make sure that the opacity/filter is set to &lt;strong&gt;255&lt;/strong&gt; (no transparency).&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/L6k3aXw7BTU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/7817450746653536166/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/css-support-for-png-in-internet.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/7817450746653536166?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/7817450746653536166?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/L6k3aXw7BTU/css-support-for-png-in-internet.html" title="CSS: Support for transparent PNG in Internet Explorer" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/css-support-for-png-in-internet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8HSXgzcCp7ImA9WhdbEEU.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-5294481476679656827</id><published>2011-10-08T16:23:00.000+02:00</published><updated>2011-10-08T16:23:58.688+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-08T16:23:58.688+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term="SVG" /><category scheme="http://www.blogger.com/atom/ns#" term="rendering" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="code" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>.NET: SVG Support</title><content type="html">After hours of searching for code for rendering SVG pictures I finally stumbled upon the &lt;a href="http://svg.codeplex.com/"&gt;SVG rendering engine&lt;/a&gt; at Codeplex. &lt;br /&gt;
&lt;br /&gt;
The good thing about SVG is that it is supported in most modern browsers. However, SVG is not supported in .NET so you need to find an external library. It seems like Microsoft has focused all their energy on XAML, even though the two formats are very similar.&lt;br /&gt;
&lt;br /&gt;
Fortunately for us the &lt;a href="http://svg.codeplex.com/"&gt;SVG Rendering Engine&lt;/a&gt; works more or less out of the box. I had to do some rewriting of the code to make it work with all SVG images. The library is still under development and needs a lot of new features to make it work 100% in accordance with the specifications.&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/UL2NDDz0y-U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/5294481476679656827/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/net-svg-support.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/5294481476679656827?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/5294481476679656827?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/UL2NDDz0y-U/net-svg-support.html" title=".NET: SVG Support" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/net-svg-support.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMFR3s6cSp7ImA9WhdbFE0.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-584989386564391933</id><published>2011-10-08T16:03:00.003+02:00</published><updated>2011-10-12T10:00:16.519+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-12T10:00:16.519+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="shared hosting" /><category scheme="http://www.blogger.com/atom/ns#" term="scheduled task" /><category scheme="http://www.blogger.com/atom/ns#" term="hostgator" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="webhosting" /><category scheme="http://www.blogger.com/atom/ns#" term="cron" /><category scheme="http://www.blogger.com/atom/ns#" term="scheduling" /><title>ASP.NET: Free scheduling of your tasks (Cron jobs)</title><content type="html">If you choose to run your website in a shared hosting environment on windows servers, most webhosts don't allow you to schedule your own tasks, like backup, changing status etc. If you run plug-and-play solutions like WordPress or Drupal you are more or less dependent on scheduled tasks.&lt;br /&gt;
&lt;br /&gt;
There are numerous providers of webbased scheduling of tasks. The tasks can normally&amp;nbsp;be sceduled by specifying the URL&amp;nbsp;of a&amp;nbsp;given webpage&amp;nbsp;on your server&amp;nbsp;and when/how often the should run.&lt;br /&gt;
&lt;br /&gt;
Free scheduling services include:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.host-tracker.com/"&gt;Host Tracker&lt;/a&gt; (1 free job)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mywebcron.com/"&gt;My Web Cron&lt;/a&gt;&amp;nbsp;(free service)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.setcronjob.com/"&gt;SetCronJob&lt;/a&gt; (&lt;strong&gt;limited&lt;/strong&gt; cron jobs are free)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://scheduler.codeeffects.com/"&gt;Web Scheduler&lt;/a&gt; (&lt;strong&gt;one&lt;/strong&gt; cron job for free)&lt;/li&gt;
&lt;/ol&gt;For your reference I have also compiled a list of commersial cron job providers (in case the free ones don't fullfill your needs):&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.siteuptime.com/"&gt;SiteUptime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://webcron.org/"&gt;WebCron&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;strong&gt;Cons&lt;/strong&gt;&lt;br /&gt;
The disadvantage when using free scheduling services, is that the number of tasks to schedule is limited, short timeout and the scheduling needs to be re-activated after a few months. If your site is heavily dependent on scheduled tasks, you should consider to use a paid service, or change to VPS or Dedicated Server hosting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Scheduling in Windows plans&lt;/strong&gt;&lt;br /&gt;
Some webhosts have made their own control panel or use commersial panels providing scheduled tasks as an option to their shared window plans. After checking multiple webhosts&amp;nbsp;I realized that it is rather rear that such option is available. The following known webhosts provide scheduled tasks as an option&amp;nbsp;in their control panel:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://secure.hostgator.com/~affiliat/cgi-bin/affiliates/clickthru.cgi?id=ulfemsoy"&gt;HostGator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mochahost.com/3244.html"&gt;Mochahost&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;strong&gt;VPS and Dedicated Servers&lt;/strong&gt;&lt;br /&gt;
If you run your website on a VPS or dedicated server, the need for a web based task scheduler does not apply. You can then either use the built-in scheduler in windows or set up your own windows service. This is possible since you will have full root-access.&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/11bZuY6emM4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/584989386564391933/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/aspnet-free-scheduling-of-your-tasks.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/584989386564391933?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/584989386564391933?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/11bZuY6emM4/aspnet-free-scheduling-of-your-tasks.html" title="ASP.NET: Free scheduling of your tasks (Cron jobs)" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/aspnet-free-scheduling-of-your-tasks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8NSX07fCp7ImA9WhdbEEU.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-1404299597198188926</id><published>2011-10-08T15:33:00.002+02:00</published><updated>2011-10-08T15:34:58.304+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-08T15:34:58.304+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dateadd" /><category scheme="http://www.blogger.com/atom/ns#" term="MS SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="time" /><category scheme="http://www.blogger.com/atom/ns#" term="date" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><category scheme="http://www.blogger.com/atom/ns#" term="procedure" /><category scheme="http://www.blogger.com/atom/ns#" term="transact-SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="function" /><category scheme="http://www.blogger.com/atom/ns#" term="userdefined" /><category scheme="http://www.blogger.com/atom/ns#" term="datetime" /><category scheme="http://www.blogger.com/atom/ns#" term="UDF" /><category scheme="http://www.blogger.com/atom/ns#" term="datediff" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>MS SQL: Custom Date and Time functions</title><content type="html">Transact-SQL really lack a the neccessary support for creating and modifying dates and times. Now and then I have the need for creating custom dates based on year, month and day. This is not an easy task. To simplify the manipulation of dates and times&amp;nbsp;a small toolkit of userdefined functions has been developed:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Date and Time functions&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/10/ms-sql-create-date.html"&gt;Create a date from year, month and day&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/10/ms-sql-create-datetime.html"&gt;Create a DateTime value from year, month, day, hours, minutes and seconds&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/10/ms-sql-create-time.html"&gt;Create a time structure for a given date&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/10/ms-sql-date-only.html"&gt;Extract the date portion of a DateTime value&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/10/ms-sql-time-from-datetime.html"&gt;Extract the time portion of a DateTime value&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;strong&gt;Calendar functions&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/10/sql-day-of-week.html"&gt;Get the Day of Week for a given date&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.lazerwire.com/2011/10/ms-sql-first-day-of-week.html"&gt;Get the First Day of Week&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/ExNjSO5NRTo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/1404299597198188926/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/ms-sql-custom-date-and-time-functions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1404299597198188926?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/1404299597198188926?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/ExNjSO5NRTo/ms-sql-custom-date-and-time-functions.html" title="MS SQL: Custom Date and Time functions" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/ms-sql-custom-date-and-time-functions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4HSXg9fCp7ImA9WhdbEEo.&quot;"><id>tag:blogger.com,1999:blog-1387713558699328802.post-4864668710352691602</id><published>2011-10-08T15:00:00.002+02:00</published><updated>2011-10-08T15:02:18.664+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-08T15:02:18.664+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dateadd" /><category scheme="http://www.blogger.com/atom/ns#" term="MS SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="month" /><category scheme="http://www.blogger.com/atom/ns#" term="time" /><category scheme="http://www.blogger.com/atom/ns#" term="second" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server" /><category scheme="http://www.blogger.com/atom/ns#" term="date" /><category scheme="http://www.blogger.com/atom/ns#" term="day" /><category scheme="http://www.blogger.com/atom/ns#" term="hour" /><category scheme="http://www.blogger.com/atom/ns#" term="transact-SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="function" /><category scheme="http://www.blogger.com/atom/ns#" term="minute" /><category scheme="http://www.blogger.com/atom/ns#" term="userdefined" /><category scheme="http://www.blogger.com/atom/ns#" term="UDF" /><category scheme="http://www.blogger.com/atom/ns#" term="datetime" /><category scheme="http://www.blogger.com/atom/ns#" term="datediff" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="year" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><category scheme="http://www.blogger.com/atom/ns#" term="microsoft" /><title>MS SQL: Create DateTime</title><content type="html">&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;To create a full DateTime structure in Transact-SQL we need to use two of our earlier defined userdefined functions. &lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&amp;nbsp;First we generate a raw base date, and then we add the hours, minutes and seconds.&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="color: green; font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;-- Returns a dateTime value for the date and time specified.&lt;/span&gt;&lt;br /&gt;
&lt;span lang="EN-US" style="color: blue; font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;create&lt;/span&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;function&lt;/span&gt; [dbo]&lt;span style="color: grey;"&gt;.&lt;/span&gt;[sudf_Common_DateTime]&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="color: grey; font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;@intYear&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;@intMonth&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;@intDay&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;@intHour&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;@intMinute&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;@intSecond&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="color: grey; font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;returns&lt;/span&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;datetime&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;as&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;begin&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;-- Create the datetime structure&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;dbo&lt;span style="color: grey;"&gt;.&lt;/span&gt;&lt;a href="http://www.lazerwire.com/2011/10/ms-sql-create-time.html"&gt;sudf_Common_Time&lt;/a&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;@intHour&lt;span style="color: grey;"&gt;,&lt;/span&gt; @intMinute&lt;span style="color: grey;"&gt;,&lt;/span&gt;@intSecond&lt;span style="color: grey;"&gt;,&lt;/span&gt; dbo&lt;span style="color: grey;"&gt;.&lt;/span&gt;&lt;a href="http://www.lazerwire.com/2011/10/ms-sql-create-date.html"&gt;sudf_Common_Date&lt;/a&gt;&lt;span style="color: grey;"&gt;(&lt;/span&gt;@intYear&lt;span style="color: grey;"&gt;,&lt;/span&gt; @intMonth&lt;span style="color: grey;"&gt;,&lt;/span&gt; @intDay&lt;span style="color: grey;"&gt;))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 10pt;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/lazerwire/gBnM/~4/ffZkEvuJCus" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.lazerwire.com/feeds/4864668710352691602/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.lazerwire.com/2011/10/ms-sql-create-datetime.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4864668710352691602?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1387713558699328802/posts/default/4864668710352691602?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/lazerwire/gBnM/~3/ffZkEvuJCus/ms-sql-create-datetime.html" title="MS SQL: Create DateTime" /><author><name>Ulf</name><uri>http://www.blogger.com/profile/07167023984257162970</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.lazerwire.com/2011/10/ms-sql-create-datetime.html</feedburner:origLink></entry></feed>
