Here's my last place code...Probably not much to do to it that hasn't already been done to the others. I didn't think about the repetitive 'teen' and 'ty' until after it was too late to fix it.

 Code:
; begin BOB
;
;!

function a($)
   Dim $0, $1, $2, $3
   $0 = " bottle of beer"
   $1 = " bottles of beer"
   $2 = " on the wall"
   $3 = ". Take one down and pass it around, "
   If $ > 1
      $a = l($) + $1 + $2 + ", " + LCase(l($)) + $1 + $3 + LCase(l(-1+$)) + IIf($=2, $0, $1) +$2+ "."
   Else
      $a = IIf($=1, l(1)+$0+$2+", one"+$0+$3+"no more"+$1+$2+".", "No more"+$1+$2+", no more"+$1+". Go to the store and buy some more, ninety-nine"+$1+$2+".")
endfunction

function l($)
   Dim $t
   $t = '',One,Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten,Eleven,Twelve,Thirteen,Fourteen,Fifteen,Sixteen,Seventeen,Eighteen,Nineteen,Twenty,Thirty,Forty,Fifty,Sixty,Seventy,Eighty,Ninety
   If 20 > $
      $l = $t[$]
   Else
      $l = IIf($ mod 10, $t[1*$/10+18]+"-"+lcase($t[$ mod 10]), $t[1*$/10+18])
endfunction

;!
;!
; end BOB