Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4793 / 13644 ツリー ←次へ | 前へ→

【54417】曜日の特定 roxy 08/3/12(水) 13:39 質問[未読]
【54419】Re:曜日の特定 ぽむじぃ 08/3/12(水) 13:47 回答[未読]
【54421】Re:曜日の特定 roxy 08/3/12(水) 13:51 発言[未読]
【54425】Re:曜日の特定 roxy 08/3/12(水) 14:08 回答[未読]
【54420】Re:曜日の特定 りん 08/3/12(水) 13:50 回答[未読]
【54422】Re:曜日の特定 roxy 08/3/12(水) 13:53 発言[未読]
【54423】Re:曜日の特定 りん 08/3/12(水) 13:59 発言[未読]
【54424】Re:曜日の特定 ぽむじぃ 08/3/12(水) 13:59 回答[未読]
【54426】Re:曜日の特定 VBWASURETA 08/3/12(水) 14:09 発言[未読]
【54427】Re:曜日の特定 roxy 08/3/12(水) 15:02 お礼[未読]
【54440】Re:曜日の特定 VBWASURETA 08/3/13(木) 9:46 発言[未読]

【54417】曜日の特定
質問  roxy  - 08/3/12(水) 13:39 -

引用なし
パスワード
   【条件】

カレンダーがあります。


たとえば、今日が水曜日だったとき、
「その週の」月曜日を取得するにはどのように記述したらよいのでしょうか?

【54419】Re:曜日の特定
回答  ぽむじぃ  - 08/3/12(水) 13:47 -

引用なし
パスワード
   ▼roxy さん:
>たとえば、今日が水曜日だったとき、
>「その週の」月曜日を取得するにはどのように記述したらよいのでしょうか?

DateAddで、2日前にしたら?

【54420】Re:曜日の特定
回答  りん E-MAIL  - 08/3/12(水) 13:50 -

引用なし
パスワード
   roxy さん、こんにちわ。

>「その週の」月曜日を取得するにはどのように記述したらよいのでしょうか?

同一週は、日曜日スタートでいいのかな。

Sub test()
  MsgBox Date - Weekday(Date, vbSunday) + 2
End Sub

こんな感じです。

【54421】Re:曜日の特定
発言  roxy  - 08/3/12(水) 13:51 -

引用なし
パスワード
   ▼ぽむじぃ さん:
ご回答ありがとうございます。

ええっと、カレンダーは1か月分なので、月曜がたくさん
あるわけで・・・

【54422】Re:曜日の特定
発言  roxy  - 08/3/12(水) 13:53 -

引用なし
パスワード
   ▼りん さん:
>roxy さん、こんにちわ。

回答ありがとうございます。

言葉足らずですみません。

業務上、カレンダーがいつも日曜や月曜はじまりとは
限りません。
あたまに金曜や木曜がくることもあります。

【54423】Re:曜日の特定
発言  りん E-MAIL  - 08/3/12(水) 13:59 -

引用なし
パスワード
   roxy さん、こんにちわ。

>業務上、カレンダーがいつも日曜や月曜はじまりとは
>限りません。
>あたまに金曜や木曜がくることもあります。

今回の場合、「同一週の月曜」ということだったので、
日曜日を指定した時に、
 翌日なのか
 前の週の月曜なのか
ということが訊きたかったのですが。

【54424】Re:曜日の特定
回答  ぽむじぃ  - 08/3/12(水) 13:59 -

引用なし
パスワード
   言っている意味が解らない。

カレンダーって、

 日  月  火  水  木  金  土
    1  2  3  4  5  6
 7  8  (9) 10 11  …

だろ?
ていうか、その週の月曜って今日日付(水曜)からみたら必ず2日前であって、
"今日日付−2日"以外に、何を意識しないといけないの?

認識が誤っているなら、ごめんなさい。

【54425】Re:曜日の特定
回答  roxy  - 08/3/12(水) 14:08 -

引用なし
パスワード
   ▼ぽむじぃ さん:
>▼roxy さん:
>>たとえば、今日が水曜日だったとき、
>>「その週の」月曜日を取得するにはどのように記述したらよいのでしょうか?
>
>DateAddで、2日前にしたら?


みなさんの色々アドバイスを聞いてちょっと道筋が見えてきました。
考え方は分かったような気がします。

DateAddで具体的にどのように記述したらよいでしょうか??
何度もすみません。

【54426】Re:曜日の特定
発言  VBWASURETA  - 08/3/12(水) 14:09 -

引用なし
パスワード
   とりあえず自分も作ってみたのでサンプル置いておきます。

Sub main()
  Dim getday As Date
  'Weekday 戻り値 1:日、2:月、3:火、4:水、5:木、6:金、7:土
  '条件例 -> (2:月曜日 - 今日の曜日) = 月曜日からの経過日数(その日数を引く=月曜日)
  getday = DateAdd("d", 2 - Weekday(Date), Date)
End Sub

【54427】Re:曜日の特定
お礼  roxy  - 08/3/12(水) 15:02 -

引用なし
パスワード
   ▼VBWASURETA さん:

すごくよく分かりました。

ありがとうございました!!

【54440】Re:曜日の特定
発言  VBWASURETA  - 08/3/13(木) 9:46 -

引用なし
パスワード
   みなさんおはようございます。

あのサンプルですが、りんさんが質問している内容としては
翌日になるようになっています。
Weekday関数は日曜から開始するので、その仕様にあわせています。

もし先週にあわせる必要があるのでしたら式を変更する必要があります。

このサンプルも一応載せておきます。

#Const SUNDAYFLG = True '日曜日仕様を先週にする場合はFalseかこのディレクティブを消してください

Sub main()
  Dim getday As Date
  'Weekday 戻り値 1:日、2:月、3:火、4:水、5:木、6:金、7:土
  '条件例 -> (2:月曜日 - 今日の曜日) = 月曜日からの経過日数(その日数を引く=月曜日)
#If SUNDAYFLG Then
  getday = DateAdd("d", 2 - Weekday(Date), Date)
#Else
  getday = DateAdd("d", 2 - IIf(Weekday(Date) = vbSunday, 8, Weekday(Date)), Date)
#End If

End Sub

4793 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free