つらつら Excel VBA

私の備忘録です。

勘定科目順にエクセルシートを並び変えする処理

確定申告の時に適当に作りました。動けばヨシ!

勘定科目ってカテゴリーさえ合ってれば名前は自由に決められるようで、並ばせるの無理じゃね?ということで、用意したリストの通りに強制的に並ばせる処理をします。該当しないものはスキップし、自動的に最後尾にまとまります。

勘定科目リストシートを作って、資産、負債、資産、費用、収入の順にA列に勘定科目をズラズラ用意。面倒なのでネットで見つけてコピペ。

Sub 勘定科目順にシート並び替え(newWb As Workbook)

Dim iRow As Long, iSort As Long, kamoku As String, flag As Boolean
Dim ws As Worksheet

With ThisWorkbook.Worksheets("勘定科目リスト")
    iSort = 0
    iRow = 1
    Do While .Range("A" & iRow).Value <> ""
        kamoku = .Range("A" & iRow).Value
        flag = False
        For Each ws In newWb.Worksheets
            If ws.Name = kamoku Then flag = True
        Next ws
        If flag Then
            If iSort = 0 Then
                newWb.Worksheets(kamoku).Move Before:=newWb.Worksheets(1)
            Else
                newWb.Worksheets(kamoku).Move After:=newWb.Worksheets(iSort)
            End If
            iSort = iSort + 1
        End If
        iRow = iRow + 1
    Loop
End With

End Sub

以上