<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="">Personally, I would really hate having to read code formatted as you propose.</div><div class="gmail_default" style="">I prefer the original by a long shot.</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">Cris</div><div class="gmail_default" style="font-size:large"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno sab 16 mar 2019 alle ore 18:57 Cedron Dawg <<a href="mailto:cedron@exede.net">cedron@exede.net</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">More readable for whom?<br>
<br></blockquote><div><span class="gmail_default" style="font-size:large">(...)</span></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
The Original:<br>
<br>
Private Sub SameSetting(vOld As Variant, vNew As Variant) As Boolean<br>
<br>
  Dim I As Integer<br>
  Dim vOldVal As Variant<br>
  Dim vNewVal As Variant<br>
<br>
  If IsNull(vOld) And If IsNull(vNew) Then Return True<br>
  If TypeOf(vOld) <> gb.Object And If TypeOf(vNew) <> gb.Object Then Return vOld = vNew<br>
<br>
  If Not (vOld Is Array) Then Return<br>
  If Not (vNew Is Array) Then Return<br>
  If vOld.Count <> vNew.Count Then Return<br>
  If vOld = vNew Then Return<br>
<br>
  For I = 0 To vOld.Max<br>
    vOldVal = vOld[I]<br>
    vNewVal = vNew[I]<br>
    If TypeOf(vOldVal) = gb.Object Or If TypeOf(vNewVal) = gb.Object Then Return<br>
    If vOldVal <> vNewVal Then Return<br>
  Next<br>
<br>
  Return True<br>
<br>
End<br>
<br>
<br>
Here is how I would have code it:  (Notice how the spaces inside the parentheses also improve readability.)<br>
<br>
<br>
'=============================================================================<br>
Private Sub SameSetting( argOldValues As Variant, argNewValues As Variant ) As Boolean<br>
<br>
'---- Bail as Matching if Both Null<br>
<br>
        If IsNull( argOldValues ) And If IsNull( argNewValues ) Then Return True<br>
<br>
'---- Bail On Simple Variables Comparison<br>
<br>
        If TypeOf( argOldValues ) <> gb.Object And If TypeOf( argNewValues ) <> gb.Object Then Return ( argOldValues = argNewValues )<br>
<br>
'---- Bail as not Matching on Non-Array Objects<br>
<br>
        If Not ( argOldValues Is Array ) Then Return False<br>
        If Not ( argNewValues Is Array ) Then Return False<br>
<br>
'---- Bail as not Matching on Count Comparison<br>
<br>
        If argOldValues.Count <> argNewValues.Count Then Return False<br>
        If argOldValues = argNewValues Then Return True '??????????   Same Array should be True, No?<br>
<br>
'---- Bail on any Mismatched Array Elements<br>
<br>
        Dim i As Integer<br>
        Dim theOldValue As Variant<br>
        Dim theNewValue As Variant<br>
<br>
        For i = 0 To argOldValues.Max<br>
          theOldValue = argOldValues[i]<br>
          theNewValue = argNewValues[i]<br>
          If TypeOf(theOldValue) = gb.Object Or If TypeOf(theNewValue) = gb.Object Then Return False<br>
          If theOldValue <> theNewValue Then Return False<br>
        Next<br>
<br>
'---- Exit as Matching<br>
<br>
        Return True<br>
<br>
End<br>
'=============================================================================<br>
<br><br>
</blockquote></div><div></div><span><img alt="" width="1" height="1" src="https://gml.email/v3.2/t/image/MTU1MjgyMTA4ODQ3YTQyNmFmZGNmZjg1ODkxYjk2MTg4YTBjNjY4MDMwJmNyaWd1YWRhQGdtYWlsLmNvbSZ1c2VyQGxpc3RzLmdhbWJhcy1iYXNpYy5vcmc.gif" id="_gml"></span></div>