質問: エクセルVBAで、 --- 年 | 月 | 日 | 売り上げ | -------------------- 2000 | 1 | 1 | 3500 | 2000 | 1 | 2 | 4600 | 2000 | 1 | 3 | 3200 | ・ ・ ・ 2000| 12 | 31 | 5000 | 上記の様な表がありまして、 これを曜日毎に合計を出して 月| ○○円 火| ○○円 水| ○○円 ・ ・ ・ の様な表にして出力したいのですが、 どのように表になっているカレンダーの様な日付を 曜日に判定?すればよいのかが分かりません。 説明下手でうまく伝わっていなければすいません・・・。 ご教授よろしくお願いします。
回答: 好きに並べてもいいなら、 | 年 | 月 | 日 | 曜日 | データ1 | データ2... のように 曜日を加える。 で、 曜日の列をチェックしながら、 "月" のとき Dim Mon As Integer に加え、 "火" のとき Dim Tues As Integer に加え,... とやっていくとか。 外部から渡されたエクセルファイル等のように書式が決まっていて、 並びを変更したくないなら、 VBA内で割り出す。 「曜日 求める C言語」 と検索してみると、 C言語辞典 日付を指定して曜日を取得する がヒットします。C言語でも普通に組めるようなので、VBA等はあると思います。 次に、Excel ( VBAを使わない方法 ) で調べてみます。 「曜日 求める Excel」 と検索すると、 日付から曜日を取得する がヒットします。 で、肝心のVBA版は... 「曜日 求める Excel VBA」 で検索すると、 メイン がヒットします。 まず、年/月/日 を文字列型 ( String ) にして、WeekDay関数に渡します。 で、1のとき日曜日なので Dim Sun As Integer を 増加、 2のときは 月曜日なので Dim Mon As Ineger を増加... みたいにして計算していく。