QBasic, 94 bytes An anonymous function that takes no input and outputs to the console. For y=-8To 8:z=Abs(y):a$="123456789abcdefghi":?Mid$(a$,1,9-z)String$(2*z,32)Mid$(a$,10+z):Next This answer is technically a polyglot, and will function in VBA
INPUT s$ FOR i=1TO ASC(s$)-64 ?TAB(i); FOR j=1TO i ?CHR$(64+i)" "; NEXT j,i
INPUT s$ n=LEN(s$) FOR y=1TO n FOR l=1TO y ? FOR x=1TO n z=x IF y>x THEN z=y ?STRING$(x,MID$(s$,z)); NEXT x,l,y