Primeiro, se você não quer um código horrivelmente complexo, você precisa colocá-lo em uma macro. Se você tentou colocá-lo em 1 célula, provavelmente teria mais de 200 caracteres e seria impossível depurá-lo.
Algo parecido com isto:
assuming var "in" contains the string
accumulator=0
for a=1 to len(in)
accumulator=accumulator*value(mid(trim(in),a,1))
next a
sum=0
while accumulator>9
for b=0 to len(accumulator)
sum=sum*value(mid(trim(accumulator),a,1))
next b
accumulator=sum
sum=0
wend
Observação: você muda de multiplicar para adicionar com base em critérios desconhecidos, portanto, não consegui codificar isso.