マクロで「並べ替え」をする

Excel2007 で「並べ替え」をするには、以下のようなVBAのコードになります。
これは自動記録したマクロにちょこっと手を加えただけのものです。

Sub Macro1R()
    Dim shtA As Worksheet
    Dim sortA As Sort
    Dim rngA As Range

    Set shtA = Worksheets("Sheet1")
    Set sortA = shtA.Sort
    Set rngA = shtA.Range("A1").CurrentRegion

    sortA.SortFields.Clear
    sortA.SortFields.Add Key:=rngA.Item(1, 1) _
                       , SortOn:=xlSortOnValues _
                       , Order:=xlAscending _
                       , DataOption:=xlSortNormal
    sortA.SetRange rngA
    sortA.Header = xlYes
    sortA.MatchCase = False
    sortA.Orientation = xlTopToBottom
    sortA.SortMethod = xlPinYin
    sortA.Apply
End Sub

Excel2003 までの「並べ替え」のコードとずいぶん変わっています。
Excel2003 まではキーの数が3つまでという制限があったのですが、Excel2007 ではその制限をなくしたためにコードの方にも変更が生じたのでしょう。
 
まぁそれはいいとして、気になる点が2つあります。
 
1つ目は、一般操作のときとエラーチェックの基準が異なることです。
うっかり

    sortA.SortFields.Clear

を忘れると、「並べ替え」の設定がえらいことになりますが、そのときにエラーメッセージが出ないことです。
一般機能で「並べ替え」ダイアログで、重複した並べ替えの条件を指定すると、それを実行しようとしたときにエラーメッセージが出ます。
しかし、VBA で重複した並べ替えの条件を指定してもエラーにはなりません。

    sortA.SortFields.Add Key:=rngA.Item(1, 1) _
                       , SortOn:=xlSortOnValues _
                       , Order:=xlAscending _
                       , DataOption:=xlSortNormal
    sortA.SortFields.Add Key:=rngA.Item(1, 1) _
                       , SortOn:=xlSortOnValues _
                       , Order:=xlAscending _
                       , DataOption:=xlSortNormal

として、Apply メソッドを実行してもエラーにならないのです。
実際に、それを実行した後に「並べ替え」ダイアログを出すと、重複した並べ替えの条件が設定されたままになっています。
 
しかし、それを実行した後に保存して、再度そのブックを開くときにエラーメッセージが出ます。
「並べ替え」の条件はシートの属性として保存されます。
シートの属性に不具合があるかどうか開くときにチェックされるので、そこで初めてエラーメッセージが出るということになるようです。
 
2つ目は、ヘルプが適切じゃないことです。
一番最後の Apply メソッドについてヘルプで調べてみました。
sortA.Apply より前の部分が「並べ替え」の設定に関するコードで、このメソッドは「並べ替え」そのものを実行するものです。
しかし、ヘルプの記述では・・・

Excel 開発者用リファレンス 
Sort.Apply メソッド 
コピーした並べ替え書式を適用します。

となっています。
これではなんのことやら分かりませんね。