|
▼Hirofumi さん:
>一応、コメントを付けて見ましたけれど
>何か言い回しが下手で上手く説明が出来ていないかも?
いえいえ、大変な作業をありがとうございました。細かいところは別として、非力な私にも「なるほど」と思うところがたくさんありました。
ありがとうございました。
はじめに、VBAを使わずに、関数でできるだけがんばって組んでいたので、VBAでする場合に、いろいろと不都合が出てきました。ループさせるのにいろいろと苦労しています。
学期ごとに組んでいるので、4 5 6 7月と8 9 10 11 12月の間に入力用時間割表があったり、VBAを始めてああしておけばよかったと思うことがたくさんあります。
提示していただいたコードやコメントにたくさん参考になったり、考えさせられた考え方がたくさんありました。
もう少しで自力解決できそうです。使えるコードは使わせていただきます。
大変ありがとうございました。今後ともよろしくお願いします。
>前回のコードを少し整理、変更してあります
>カレンダの有るシートを見ているのは、
>基準位置の日付(シリアル値)だけです
>日付の位置は、基準セル位置と、月が書かれている行のピッチから
>計算して出しています
>詰まり、シートには、基準セル位置に、シリアル値が有れば後は何も無くても動きます
>尚、Userformの呼び出し時に、月の書かれている行ピッチを指定できる様に変更して有ります。
大変助かります。カレンダーの方は、自分でピッチを変えたり、背景色を変えたり、土日の時間割の部分を””にできたのですが、それだとユーザーホームで呼び出したとき、4月はよいのですが5月以降がずれて表示され、困っていたところです。
> '月初の有る週の日曜の日付を計算
> dtmTop = dtmMonth - (WeekDay(dtmMonth) - 1)
これはカンレンダー形式のもう一つの年間時間割の時に使ってました。第一月曜日が何日になるかということで、でも本を見て作ったのものですから忘れてました。
> '先頭日付に指定週分の日数+1を加算して週の先頭日付を返す
> GetWeekDay = DateAdd("ww", lngWeek - 1, dtmTop) + 1
↑
"WW" これは、何でしょう?DateAddのヘルプを見ると、「追加する時間間隔を表す文字列式を指定します」となっていたのですが、意味がわかりません。確か本で「ちらっ」と見たような覚えがあるのですが・・・
|
|