The easiest solution is to use the Outlook Today screen and add your folders to the list displayed. Then you shouldn't miss any as the list will display unread messages. However the following should work, provided the named folders are direct sub folders of the default inbox and the named folders exist. Change the category names and folder names as appropriate.
Sub MoveCategory()
Dim olItems As Outlook.Items
Dim olItem As Outlook.MailItem
Dim i As Long
Dim strFolder As String
Set olItems = Session.GetDefaultFolder(olFolderInbox).Items
olItems.Sort "[Received]", True
For i = olItems.Count To 1 Step -1
Set olItem = olItems(i)
Select Case olItem.Categories
Case "Category Name 1"
strFolder = "Foldername for Category Name 1"
Case "Category Name 2"
strFolder = "Foldername for Category Name 2"
Case "Category Name 3"
strFolder = "Foldername for Category Name 3"
'etc
Case Else
strFolder = ""
End Select
If Not strFolder = "" Then
olItem.Move Session.GetDefaultFolder(olFolderInbox).folders(strFolder)
End If
Next i
CleanUp:
Set olItems = Nothing
Set olItem = Nothing
lbl_Exit:
Exit Sub
End Sub