[[20120322184101]] 『VBAのケースについてです』(すいません) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『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.