<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: which add-ins?</title>
	<atom:link href="http://smurfonspreadsheets.wordpress.com/2010/07/13/which-add-ins/feed/" rel="self" type="application/rss+xml" />
	<link>http://smurfonspreadsheets.wordpress.com/2010/07/13/which-add-ins/</link>
	<description>Simon Murphy on professional spreadsheet development stuff</description>
	<lastBuildDate>Thu, 18 Apr 2013 08:42:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Nicholas Hebb</title>
		<link>http://smurfonspreadsheets.wordpress.com/2010/07/13/which-add-ins/#comment-15867</link>
		<dc:creator><![CDATA[Nicholas Hebb]]></dc:creator>
		<pubDate>Mon, 19 Jul 2010 22:12:07 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=2302#comment-15867</guid>
		<description><![CDATA[It&#039;s true, I am lazy. The dp() sub is in with my VBA functions, but the Debug.Print wrapper I use in VB6 (dbp() - below) is more thorough and has a side benefit when used with MZTools. MZTools has a &quot;Procedure Callers&quot; tool, so if I&#039;ve littered a call stack with debug.print&#039;s it makes it easy to see where my debug calls are coming from in case I need to focus on an area and comment some out.

As for the StringBuilder class, DDoE covered on this topic today, and I posted mine in the comments:
http://www.dailydoseofexcel.com/archives/2010/07/19/string-building-class/


Public Sub dbp(ParamArray vOut() As Variant)
    Dim i As Integer
    Dim sOut As String
    sOut = &quot;&quot;
    If DEBUG_MODE Then
        If UBound(vOut) &lt; 0 Then
            Debug.Print
        Else
            sOut = vOut(0)
            For i = 1 To UBound(vOut)
                sOut = sOut &amp; vbTab &amp; vOut(i)
            Next
            Debug.Print sOut
        End If
    End If
End Sub]]></description>
		<content:encoded><![CDATA[<p>It&#8217;s true, I am lazy. The dp() sub is in with my VBA functions, but the Debug.Print wrapper I use in VB6 (dbp() &#8211; below) is more thorough and has a side benefit when used with MZTools. MZTools has a &#8220;Procedure Callers&#8221; tool, so if I&#8217;ve littered a call stack with debug.print&#8217;s it makes it easy to see where my debug calls are coming from in case I need to focus on an area and comment some out.</p>
<p>As for the StringBuilder class, DDoE covered on this topic today, and I posted mine in the comments:<br />
<a href="http://www.dailydoseofexcel.com/archives/2010/07/19/string-building-class/" rel="nofollow">http://www.dailydoseofexcel.com/archives/2010/07/19/string-building-class/</a></p>
<p>Public Sub dbp(ParamArray vOut() As Variant)<br />
    Dim i As Integer<br />
    Dim sOut As String<br />
    sOut = &#8220;&#8221;<br />
    If DEBUG_MODE Then<br />
        If UBound(vOut) &lt; 0 Then<br />
            Debug.Print<br />
        Else<br />
            sOut = vOut(0)<br />
            For i = 1 To UBound(vOut)<br />
                sOut = sOut &amp; vbTab &amp; vOut(i)<br />
            Next<br />
            Debug.Print sOut<br />
        End If<br />
    End If<br />
End Sub</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon</title>
		<link>http://smurfonspreadsheets.wordpress.com/2010/07/13/which-add-ins/#comment-15866</link>
		<dc:creator><![CDATA[Simon]]></dc:creator>
		<pubDate>Mon, 19 Jul 2010 21:46:19 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=2302#comment-15866</guid>
		<description><![CDATA[Ross, Didn&#039;t we cover that at the conf. :-)

Nick - you wrapped debug.print?? I thought I was lazy...

(actually I do have something similar so that I can show msgboxes during dev then switch to debug.print in production.) 
please do post your stringbuilder, its always handy to see other approaches.]]></description>
		<content:encoded><![CDATA[<p>Ross, Didn&#8217;t we cover that at the conf. :-)</p>
<p>Nick &#8211; you wrapped debug.print?? I thought I was lazy&#8230;</p>
<p>(actually I do have something similar so that I can show msgboxes during dev then switch to debug.print in production.)<br />
please do post your stringbuilder, its always handy to see other approaches.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nicholas Hebb</title>
		<link>http://smurfonspreadsheets.wordpress.com/2010/07/13/which-add-ins/#comment-15854</link>
		<dc:creator><![CDATA[Nicholas Hebb]]></dc:creator>
		<pubDate>Fri, 16 Jul 2010 10:39:25 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=2302#comment-15854</guid>
		<description><![CDATA[You must have a lot of add-ins to need this. I have a few tools that make debug printing a lot easier.

The first is a StringBuilder class that lets you call Add() for each line and ToString() to return them all concatentaed with vbCrLf&#039;s. Let me know if you&#039;re interested and I&#039;ll post it.

The second is just a function to replace C style \n with vbCrLf:

Public Function nl(ByVal sText As String) As String
    Const newLine As String = vbCrLf
    sText = Replace$(sText, &quot; \n &quot;, newLine)
    nl = Replace$(sText, &quot;\n&quot;, newLine)
End Function

The two Replace() calls are for padded and un-padded \n&#039;s. Simple, yet so time saving.

The third is if you are really lazy:

Public Function dp(Optional sText As String = &quot;&quot;)
    Debug.Print sText
End Function]]></description>
		<content:encoded><![CDATA[<p>You must have a lot of add-ins to need this. I have a few tools that make debug printing a lot easier.</p>
<p>The first is a StringBuilder class that lets you call Add() for each line and ToString() to return them all concatentaed with vbCrLf&#8217;s. Let me know if you&#8217;re interested and I&#8217;ll post it.</p>
<p>The second is just a function to replace C style \n with vbCrLf:</p>
<p>Public Function nl(ByVal sText As String) As String<br />
    Const newLine As String = vbCrLf<br />
    sText = Replace$(sText, &#8221; \n &#8220;, newLine)<br />
    nl = Replace$(sText, &#8220;\n&#8221;, newLine)<br />
End Function</p>
<p>The two Replace() calls are for padded and un-padded \n&#8217;s. Simple, yet so time saving.</p>
<p>The third is if you are really lazy:</p>
<p>Public Function dp(Optional sText As String = &#8220;&#8221;)<br />
    Debug.Print sText<br />
End Function</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ross</title>
		<link>http://smurfonspreadsheets.wordpress.com/2010/07/13/which-add-ins/#comment-15847</link>
		<dc:creator><![CDATA[ross]]></dc:creator>
		<pubDate>Wed, 14 Jul 2010 15:09:17 +0000</pubDate>
		<guid isPermaLink="false">http://smurfonspreadsheets.wordpress.com/?p=2302#comment-15847</guid>
		<description><![CDATA[I didnt know that people coded in power point!]]></description>
		<content:encoded><![CDATA[<p>I didnt know that people coded in power point!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
