こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

最期の行まで範囲指定ができません

Excel365solo,Win10使用の超初心者です。
セルB26~BE26まで項目名が入り、不規則にセル結合してます。
B27~B57まで月日と曜日を表示するVLOOKUP関数が入っています。
そしてB27~B57まで5月21日~6月20日までが表示されています。
そして、次のコードでB27~BE57の範囲指定しても、B27~BE56しか
選択してくれません。仕方なく
Selection.Resize(Selection.Rows.Count + 1).Select を追加して
使っています。原因がわかりません。ご教示お願いします。

Sub test()
Range("B27").Resize(Day(DateSerial(Year(Date), Month(Date), 0)), 58).Select
’Selection.Resize(Selection.Rows.Count + 1).Select
End Sub

投稿日時 - 2020-05-26 21:02:47

QNo.9753499

すぐに回答ほしいです

質問者が選んだベストアンサー

> それで、大の月、小の月ごとに、いちいち+1を加えなくてもいい式が知りたいです。

そのまま(Month(Date) + 1)ですべての月に対応します。
以下のコードで確認してみてください。

mDate = "2020/2/1"
Debug.Print Month(DateSerial(Year(mDate), Month(mDate) + 1, 0)) & "月" _
; Day(DateSerial(Year(mDate), Month(mDate) + 1, 0)) & "日"
mDate = "2020/4/1"
Debug.Print Month(DateSerial(Year(mDate), Month(mDate) + 1, 0)) & "月" _
; Day(DateSerial(Year(mDate), Month(mDate) + 1, 0)) & "日"
mDate = "2020/5/1"
Debug.Print Month(DateSerial(Year(mDate), Month(mDate) + 1, 0)) & "月" _
; Day(DateSerial(Year(mDate), Month(mDate) + 1, 0)) & "日"
mDate = "2020/12/1"
Debug.Print Month(DateSerial(Year(mDate), Month(mDate) + 1, 0)) & "月" _
; Day(DateSerial(Year(mDate), Month(mDate) + 1, 0)) & "日"

投稿日時 - 2020-05-27 07:31:57

お礼

ありがとうございました。いつも手早いご回答、心から感謝もうしあげます。

投稿日時 - 2020-05-27 08:33:37

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

Range("B27").Resize(DateAdd("m", 1, Range("B27")) - Range("B27"), 58).Select

でしょうか?

投稿日時 - 2020-05-27 02:26:35

ANo.1

Day(DateSerial(Year(Date), Month(Date), 0))

Debug.Print Month(DateSerial(Year(Date), Month(Date), 0))

してみると分かると思います。今月の前は4月なのでDayは30になっています。
B27からB27を含めて30行下は56なのであっています。
今月末でしたらMonth(Date) + 1でいかがですか。

投稿日時 - 2020-05-26 21:34:43

補足

今月末でしたらMonth(Date) + 1でいかがですか。 ----ありがとうございました。うまく範囲指定できました。それで、大の月、小の月ごとに、いちいち+1を加えなくてもいい式が知りたいです。よろしくお願いします。

投稿日時 - 2020-05-26 22:07:32

あなたにオススメの質問