その月の日付と曜日をマクロを使わずに展開するには?

Question 5.5 Previous Next
A氏より  (1998.5.27)
年月を入力すれば、その月の日付と曜日をワークシートに展開したいのですが、 マクロを使わずに行う方法を教えて下さい。
B氏より  (2001.11.28)   はじめて質問させていただきます。自分は、某メーカーに勤める37歳・男性です。
先日、サンプルシート〔日付曜日展開〕をダウンロードさせていただきましたが、1箇所理解できないところがあります。
”曜日割り出し”で ”=WEEKDAY(展開!C5) ” の箇所ですが、どのような仕組みになっているか支障なければ教えていただけないでしょうか? 宜しくお願い致します。
Answer   Copyright (C) 1998.5.27, 2001.11.28 永井善王
Aの回答
いろいろな方法が考えられますが、一例としてサンプルシートを作成しておきました。
ワークシート 左図のワークシートは、
ユーザーが D2セルに「年月」を入力すると、その月の 1日から月末日までの「日」を A5:A35セルに展開し、対応する曜日を割り出して D5:D35セルに数字の 1~7でセットします。

各セルには数式を入力してありますので、「年月」を入力すると即座に展開されます。マクロは使っていません。

式を見たり試したり、くわしいことは
こちらから「日付曜日展開」をダウンロード してください。

Bの回答
WEEKDAY関数はワークシート関数で、シリアル値を曜日に変換して数値で返してくれます。ワークシート関数ですから通常はセルに入力して使いますが、Visual Basicでも使用できます。

WEEKDAY関数

構文   =WEEKDAY(シリアル値,種類 )

シリアル値 とは、Excelで日付や時間の計算に使用されるコードです。 Windows版では 1900年 1月 1日を 1とし、Macintosh版では 1904年 1月 1日を 1とするシリアル値(共に 9999年 12月 31日まで)を指定します。シリアル値の代りに、年月日が入力されているセルを指定することも可能です。 [serial] 連続、逐次。

種類 とは、戻り値の種類のことで 1、2、3のいずれかの数字を指定します。省略すると 1とみなされます。 (1:日曜が1で土曜が7、 2:月曜が1で日曜が7、 3:月曜が0で日曜が6)

ご質問の =WEEKDAY(展開!C5) の数式は上図サンプルの D5セルに入力されていて、「展開」シート、つまり、このシートの C5セルの日付のシリアル値を、曜日を意味する数値に変換するという意味になります。

 

Excel VBA Macro