<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Friday Notes</title>
	<atom:link href="http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/</link>
	<description>Daily posts of Excel tips…and other stuff</description>
	<lastBuildDate>Thu, 09 Feb 2012 18:06:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Reid</title>
		<link>http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/#comment-40466</link>
		<dc:creator>Reid</dc:creator>
		<pubDate>Tue, 04 Aug 2009 17:37:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=2719#comment-40466</guid>
		<description>&lt;p&gt;I keep coming back to your blog because I always pick up something. Here amongst the weighty topic of class modules, I come across the gem of Shift-Space and Ctrl-Space. I&#039;ve been using Excel for years, do some VBA programming (yes, even class modules), and yet I did not know about Shift-Space, etc. I love keyboard shortcuts!!!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I keep coming back to your blog because I always pick up something. Here amongst the weighty topic of class modules, I come across the gem of Shift-Space and Ctrl-Space. I&#8217;ve been using Excel for years, do some VBA programming (yes, even class modules), and yet I did not know about Shift-Space, etc. I love keyboard shortcuts!!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dick Kusleika</title>
		<link>http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/#comment-40361</link>
		<dc:creator>Dick Kusleika</dc:creator>
		<pubDate>Mon, 27 Jul 2009 13:56:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=2719#comment-40361</guid>
		<description>&lt;p&gt;Tushar:  I resisted custom classes for years.  Your preaching, in no small measure, was one of the things that got me over the hump.&lt;/p&gt;
&lt;p&gt;Nick:  Yeah, but for me it was all Ruby on Rails documentation.  For every task, I just asked myself if I could it in a class.  For properties, it was a no brainer.  For methods, there were times I put it in a class and decided it wasn&#039;t right, then took it out and put it in a sub.  In my most recent situation, I had to determine if my CList object was the first one, that is, that there was not an earlier CList.  I had to find the earliest CList so I created a property of the CLists collection class to loop through and get the first CList&#039;s date.  That one was easy to decide to put it in a class.  I could have went a step further and made a CList.IsFirst property, but it seemed to contrived and I just compared CList.ListDate to CLists.EarliestDate in the sub.  One way to go about it is to try to jam everything in a class and you&#039;ll get a feel for what belongs and what doesn&#039;t.&lt;/p&gt;
&lt;p&gt;Charlie: Heavy class/light sub.  It means to put the business logic/heavy lifting code in a class and not a sub.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Tushar:  I resisted custom classes for years.  Your preaching, in no small measure, was one of the things that got me over the hump.</p>
<p>Nick:  Yeah, but for me it was all Ruby on Rails documentation.  For every task, I just asked myself if I could it in a class.  For properties, it was a no brainer.  For methods, there were times I put it in a class and decided it wasn&#8217;t right, then took it out and put it in a sub.  In my most recent situation, I had to determine if my CList object was the first one, that is, that there was not an earlier CList.  I had to find the earliest CList so I created a property of the CLists collection class to loop through and get the first CList&#8217;s date.  That one was easy to decide to put it in a class.  I could have went a step further and made a CList.IsFirst property, but it seemed to contrived and I just compared CList.ListDate to CLists.EarliestDate in the sub.  One way to go about it is to try to jam everything in a class and you&#8217;ll get a feel for what belongs and what doesn&#8217;t.</p>
<p>Charlie: Heavy class/light sub.  It means to put the business logic/heavy lifting code in a class and not a sub.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charlie Rowe</title>
		<link>http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/#comment-40356</link>
		<dc:creator>Charlie Rowe</dc:creator>
		<pubDate>Mon, 27 Jul 2009 03:12:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=2719#comment-40356</guid>
		<description>&lt;p&gt;What does HCLS stand for?&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>What does HCLS stand for?</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harald Staff</title>
		<link>http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/#comment-40350</link>
		<dc:creator>Harald Staff</dc:creator>
		<pubDate>Sun, 26 Jul 2009 14:16:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=2719#comment-40350</guid>
		<description>&lt;p&gt;Zach, I don&#039;t think this is a question of time, but of structure. If you know where you want to go and how to get there, then &#039;quick-and-dirty&#039; may very well be encapsuled procedures and object oriented programming. My first approach on almost all VBA tasks is to see if a collection of objects can do the job pretty much themselves, if so it&#039;s pretty quick to write, resulting in something like&lt;/p&gt;
&lt;p&gt;for each x in subrcribers&lt;br&gt;
  if x.time2ask then call x.emailme&lt;br&gt;
next&lt;/p&gt;
&lt;p&gt;I agree with you on this; VSTO is never quick-and-dirty, it&#039;s just too much hassle involved on programming, on testing and on deployment. I believe VSTO is made for something else, Developer delivers Project to Customer for Money.&lt;/p&gt;
&lt;p&gt;Of course I may be wrong, weirder things happens constantly. Anyone write quick&#039;n&#039;d VSTO code for their own immediate use?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Zach, I don&#8217;t think this is a question of time, but of structure. If you know where you want to go and how to get there, then &#8216;quick-and-dirty&#8217; may very well be encapsuled procedures and object oriented programming. My first approach on almost all VBA tasks is to see if a collection of objects can do the job pretty much themselves, if so it&#8217;s pretty quick to write, resulting in something like</p>
<p>for each x in subrcribers<br />
  if x.time2ask then call x.emailme<br />
next</p>
<p>I agree with you on this; VSTO is never quick-and-dirty, it&#8217;s just too much hassle involved on programming, on testing and on deployment. I believe VSTO is made for something else, Developer delivers Project to Customer for Money.</p>
<p>Of course I may be wrong, weirder things happens constantly. Anyone write quick&#8217;n'd VSTO code for their own immediate use?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick</title>
		<link>http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/#comment-40348</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Sun, 26 Jul 2009 08:28:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=2719#comment-40348</guid>
		<description>&lt;p&gt;Are there any documentation/books on achieving better HCLS?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Are there any documentation/books on achieving better HCLS?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zach</title>
		<link>http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/#comment-40347</link>
		<dc:creator>Zach</dc:creator>
		<pubDate>Sun, 26 Jul 2009 01:22:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=2719#comment-40347</guid>
		<description>&lt;p&gt;I really am so jealous of everyone who has time to write solid code for any project they are working on.  I find that the only way I have time to do anything in my job is where I can run the formula (time spent on a tasks * number of expected times I&#039;ll have to do the task &gt; time spend on some quick-and-dirty code) and come up positive.  If I replace the quick-and-dirty with clean, well documented, modular code the formula always comes up negative.  Then months later when the * of expected times to do the task has multiplied by 3, I still don&#039;t have the time to update the code to something proper.  It&#039;s very depressing, all of it, in that all of my code is just barely functional garbage that does the job but would be embarrassing to have to explain to anyone else.&lt;/p&gt;
&lt;p&gt;I guess the moral of the story is to get a job where you have time to do it properly!  That said, I have some old code that was very class module oriented that I haven&#039;t touched in ages from a prior job and I can still figure out what it does just by reading the code.  I totally agree with you, Dick, that that&#039;s the way to go.  That whole tradeoff really ties into the whole VBA vs. VSTO debate, where the fact is that most people who use VBA don&#039;t go to VSTO just because the time investment for the simplest task isn&#039;t worth the gain in most cases.  I&#039;d love to whip up some VB.net or C# code for my job, but my job isn&#039;t that of a coder...it&#039;s that of a financial analyst who has bosses that can appreciate a 100x time savings but don&#039;t give a rat&#039;s ass about the mechanics behind those time savings.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I really am so jealous of everyone who has time to write solid code for any project they are working on.  I find that the only way I have time to do anything in my job is where I can run the formula (time spent on a tasks * number of expected times I&#8217;ll have to do the task &gt; time spend on some quick-and-dirty code) and come up positive.  If I replace the quick-and-dirty with clean, well documented, modular code the formula always comes up negative.  Then months later when the * of expected times to do the task has multiplied by 3, I still don&#8217;t have the time to update the code to something proper.  It&#8217;s very depressing, all of it, in that all of my code is just barely functional garbage that does the job but would be embarrassing to have to explain to anyone else.</p>
<p>I guess the moral of the story is to get a job where you have time to do it properly!  That said, I have some old code that was very class module oriented that I haven&#8217;t touched in ages from a prior job and I can still figure out what it does just by reading the code.  I totally agree with you, Dick, that that&#8217;s the way to go.  That whole tradeoff really ties into the whole VBA vs. VSTO debate, where the fact is that most people who use VBA don&#8217;t go to VSTO just because the time investment for the simplest task isn&#8217;t worth the gain in most cases.  I&#8217;d love to whip up some VB.net or C# code for my job, but my job isn&#8217;t that of a coder&#8230;it&#8217;s that of a financial analyst who has bosses that can appreciate a 100x time savings but don&#8217;t give a rat&#8217;s ass about the mechanics behind those time savings.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Banfield</title>
		<link>http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/#comment-40345</link>
		<dc:creator>Colin Banfield</dc:creator>
		<pubDate>Sat, 25 Jul 2009 14:14:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=2719#comment-40345</guid>
		<description>&lt;p&gt;One problem I think is that there&#039;s not enough info available for Excel VBA programmers to appreciate using class modules as a standard technique for all of their programming projects. The vast majority of VBA books are procedural oriented, with a discussion of classes confined to a chapter. Most VBA code snippets are procedural oriented. Pro Excel VBA, which is 100% object-oriented, came as a surprise to me. My main annoyance with VBA classes is the lack of inheritance.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>One problem I think is that there&#8217;s not enough info available for Excel VBA programmers to appreciate using class modules as a standard technique for all of their programming projects. The vast majority of VBA books are procedural oriented, with a discussion of classes confined to a chapter. Most VBA code snippets are procedural oriented. Pro Excel VBA, which is 100% object-oriented, came as a surprise to me. My main annoyance with VBA classes is the lack of inheritance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tushar Mehta</title>
		<link>http://www.dailydoseofexcel.com/archives/2009/07/24/friday-notes/#comment-40342</link>
		<dc:creator>Tushar Mehta</dc:creator>
		<pubDate>Sat, 25 Jul 2009 01:32:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.dailydoseofexcel.com/?p=2719#comment-40342</guid>
		<description>&lt;p&gt;Dick wrote: &quot;The code is so clean and readable and self-documenting, that it took me no time at all to get my bearings. I was able to find where the changes needed to be made, change a property, add a new property and I was done.&quot;&lt;/p&gt;
&lt;p&gt;I&#039;ve been saying and doing this -- well, at a more general level -- for years.  Most of my programs I can modify in an incredibly short time, years after last touching the code -- and, by and large, you will find *no* documentation of the code.&lt;/p&gt;
&lt;p&gt;The key is writing modularized code be it in class modules or elsewhere.  For the most part, when I modify a procedure I can *guarantee* that the change will have no effect on any other code except as expected -- in the case of a function through the returned value and for both subs and functions through explicitly declared ByRef variables.  In general, and with few unavoidable exceptions, my code has *no* module level or otherwise global variables.&lt;/p&gt;
&lt;p&gt;Modularization actually introduces a problem in writing class modules where properties are often retained in module level variables.  This requires greater discipline in not accessing global variables willy-nilly.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Dick wrote: &#8220;The code is so clean and readable and self-documenting, that it took me no time at all to get my bearings. I was able to find where the changes needed to be made, change a property, add a new property and I was done.&#8221;</p>
<p>I&#8217;ve been saying and doing this &#8212; well, at a more general level &#8212; for years.  Most of my programs I can modify in an incredibly short time, years after last touching the code &#8212; and, by and large, you will find *no* documentation of the code.</p>
<p>The key is writing modularized code be it in class modules or elsewhere.  For the most part, when I modify a procedure I can *guarantee* that the change will have no effect on any other code except as expected &#8212; in the case of a function through the returned value and for both subs and functions through explicitly declared ByRef variables.  In general, and with few unavoidable exceptions, my code has *no* module level or otherwise global variables.</p>
<p>Modularization actually introduces a problem in writing class modules where properties are often retained in module level variables.  This requires greater discipline in not accessing global variables willy-nilly.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

