投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/12/18 23:15:28
コードから察するに、VB2008 もしくは VB2010 をお使いのようですね。

> 曜日を一日後のもので表示したいのですが
Today の曜日の一つ後を算出するのではなく、
「Today の一日後の日付」の曜日を得た方が早いと思いますよ。
一日後の日付を得る方法は、既に shu さんが回答しておられますね。


> Dim Tdy_Wd = Today.Dayofweek
> If Tdy_Wd = 6 Then
番号ではなく、DayOfWeek.Saturday 等で管理されるべきです。

> 'Tdy_Wdの曜日番号から曜日を割り出す。 
ここが違います。

WeekdayName 関数に渡す曜日番号というものは、Today.DayOfWeek で得るのではなく、
Weekday 関数を使って得る必要があります。

Today.DayOfWeek から返されるのは、曜日そのものを表す値であり、具体的には
  DayOfWeek.Sunday ' = 0 
  DayOfWeek.Monday ' = 1 
  '   : 
  DayOfWeek.Saturday '= 6 
です。

一方、Weekday や WeekdayName で使う値は、1~7 を取ります。
しかもこの値は、曜日そのものを示しているのではなく、週内の第何曜日かを表す値です。
1~7 がどの曜日に割り当てられているのかは、関数の引数によって指定する事になります。

WeekdayName の場合は、1番に相当する曜日を第3引数で指定する事になっており、たとえば
 「WeekdayName(1, , FirstDayOfWeek.Sunday)」ならば『日曜日』
 「WeekdayName(2, , FirstDayOfWeek.Sunday)」ならば『月曜日』
 「WeekdayName(1, , FirstDayOfWeek.Monday)」ならば『月曜日』
といった具合です。Weekday 関数の場合は第2引数です。

この引数を指定しなかった場合は、FirstDayOfWeek.System が指定された物として扱われ、
OS の地域設定に依存した結果を返します。