Em geral, as funções inseridas em uma célula não podem alterar a formatação da célula em que estão porque a função não sabe em qual célula ela está. A única maneira de contornar isso é passar o endereço da célula atual para a função .
Function LookupWithFormatting(rValue As Range, rLookup As Range, rResult As Range, rFormatThisCell As Range) As String
A função seria inserida na célula B1 como =LookupWithFormatting(A1, IDSource, TextSource, B1)
.
Se você não tiver muitos formatos, considere a possibilidade de usar a formatação condicional em vez de gravar uma função do VBA. (Você precisaria de um formato condicional separado para cada valor em sua tabela de pesquisa.)