[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAのケースについてです』(すいません)
VBA超初心者です。調べながら作りましたが、問題にぶちあたりましたので、ぜひご教授下さい。
やりたいことは、B列に入っている10行目から40行目までの日付を元に土曜日、日曜日、祝日以外は 下のCaseというコードに書いたことをしたいです。 祝日が入っているセル範囲には、「祝日」という名前を付けてあります。 これを祝日判断で使えないでしょうか?
For i = 10 To 40 Select Case Weekday(Cells(i, "b")) .value Case vbMonday Cells(i, "E") = Range("E1").Value Cells(i, "H") = Range("H1").Value Cells(i, "M") = 0 Cells(i, "N") = "あ" Cells(i, "O") = TimeSerial(1, 0, 0) Case vbTuesday Cells(i, "E") = Range("E2").Value Cells(i, "H") = Range("H2").Value Cells(i, "M") = 0 Cells(i, "N") = "い" Cells(i, "O") = TimeSerial(1, 0, 0) Case vbWednesday Cells(i, "E") = Range("E3").Value Cells(i, "H") = Range("H3").Value Cells(i, "M") = 0 Cells(i, "N") = "う" Cells(i, "O") = TimeSerial(1, 0, 0)
・・・・・・
End Select
>Select Case Weekday(Cells(i, "b")) .value ↓ Select Case Weekday(Cells(i, "b").Value) - 9 * Application.CountIf(Range("祝日"), Cells(i, "b"))
なんて云うのでどうでしょか?
(半平太) 2012/03/22 19:55
ありがとうございます。ちなみに−9とはなんでしょうか?よろしくお願いします。
>ちなみに−9とはなんでしょうか?
エーと、今までのSelect値が「1〜7」を返すものだったので、 それ以外になれば、月〜金ではないことになる・・・と考えたのですが。
つまり、Countifを使って、祝日範囲に何個あるか調べ、 無ければ、-9*0 なので今までのWeekday値に無影響ですし、 1つあれば、-9*1 なのでSelect値はトータルでマイナスになり、 Weekday値とは似ても似つかない値になってくれます。
(半平太) 2012/03/22 20:46
ありがとうございます。ちなみに祝日のシートがカレンダーという別シートなのですが、
どのように追加したらよろしいでしょうか?(すいません)
>どのように追加したらよろしいでしょうか
何か追加する必要がある、と判断される事態が起きているのですか?
(半平太) 2012/03/22 22:50
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.