По идее, можно и так.
Только у вас ошибочка - лучше явно присвоить создаваемый объект, нежели ориентироваться на умолчания:
[vba]Код
set CreateSheet = AWB.Sheets.Add Before:=AWB.Sheets(1)
with CreateSheet
...
[/vba]
Ну а ещё лучше (поскольку объект обычно передается по ссылке, т.е. малозатратно по памяти) - всё же создать локальную переменную нужного типа, а уж при выходе - присвоить её имени:
[vba]Код
function CreateSheet (AWB as workbook) as worksheet
Dim newSh as worksheet
set newSh = AWB.Sheets.Add Before:=AWB.Sheets(1)
with newSh
.Name = "ListName"
....
End With
set CreateSheet = newSh
end function
[/vba]