引き続き、「VB6で当然だったことがなんでVB2008では
できないんだ」と思ってて、やっとわかったことのメモを。

 たとえば日付を8桁表示にする場合、VB6では
Format("2009/07/08","yyyymmdd")と書けば
「20090708」と表示されました。VB2008にも
Format関数は用意されているものの、同様に書くと
「yyyymmdd」と表示されます。

 これは、VB6では黙示的に日付型の変換を行って
いるのに対し、VB.NETでは変換を行わず、
"2009/07/08"を「文字列として」認識している
ためです。VB.NETでは日付型の変換が必要になり、
結果として
Format(CDate("2009/07/08"),"yyyyMMdd")
としてやる必要があります。

(2013/08/11追記)
これは0埋めでも同様で、VB6ならaにString型で
「12」という「文字」が入っていても
Format(a,"000")
としてやれば「012」と表示されました。ところが
これをそのままVB2008に持っていくと「000」と
表示されるので、
Format(CInt(a),"000")
のように明示的な型変換をする必要が出てきます。
(追記ここまで)

 ちなみに、VB.NETでは「mm」は「分」、「MM」は
「月」を表します。ここもVB6のように「mmは基本的に
月を表すが、hhの後ろの場合のみ時間を表す」という
黙示的な変換は行われないので、注意してください。