-PR-
解決済み

コンボボックスにdateで取得した月の日数分を表示したい

  • すぐに回答を!
  • 質問No.298791
  • 閲覧数264
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 75% (315/420)

 プログラム初心者です。VBAなのですが、エクセルから取得してきたある月の日数分だけの日付をコンボボックスに追加したいのですが、どうしたらいいでしょうか?
 
 その月の末日をmatsuとしていろいろ考えてみましたが、どうもわかりませんでした。
matsu=Day(DateSerial(年,月,1)  ←年と月は可変です。
これを工夫してある月の末日を取得したと考えています。これを

For i = 1 To matsu
cmbNyu.AddItem (i & "日")
cmbTai.AddItem (i & "日")
Next i
でコンボボックスに追加・・・とうゆう予定なのですが・・・?この方法じゃなくてもいいので何か方法がありましたらどんなことでもいいのでお力をお貸しください。よろしくお願いします。 
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル13

ベストアンサー率 59% (745/1260)

その月の月末日を取得するのですよね。

エクセルから取得する月を基に

 DateAdd("d",-1,(DateAdd("m",+1,Format$(月,"mm"))))

月から取得する月数の翌月を求めDateAddとFormat$で翌月を求めれば日付は1が帰ってくるはずですからその日付から1日引いた日付がその月の月末日。

これではどうでしょうか。
お礼コメント
rufas

お礼率 75% (315/420)

 有難うございます。DateAdd関数とゆうものの使い方がわからないので、それを調べてからすこし考えてみたいと思います。回答をお待ちしている間、私なりに考えてみたのですが、
matsu = day(DateSerial(year(now),month(now)+1,0))
こんな感じで・・・(^_^;)

 社内システムの出勤管理システムを任されたものの、大学も文系のため全くプログラム初心者で今年の4月までプログラムのプも知らなかったもので・・・
 O_cyanさんの考えていただいたコードを使わしていただこうかと思います。
 また、何かありましたらよろしくお願いいたします。
投稿日時 - 2002-06-24 13:13:13

その他の回答 (全2件)

  • 回答No.2
レベル14

ベストアンサー率 28% (4408/15644)

他カテゴリのカテゴリマスター
>お礼のmatsu = day(DateSerial(year(now),month(now)+1,0))のところが正しいのかなと気になって、私もやって見ました。
下記がご参考になれば。
Sub test01()
' MsgBox Now()
' MsgBox Year(Now())
' m=Month(Now()) + 1
' MsgBox m
' MsgBox DateSerial(2002, 7, 1)
m = Month(Now())
' m = 12
If m = 12 Then
m = 1
y = Year(Now()) + 1
Else
m = Month(Now()) + 1
y = Year(Now())
End If
a = DateSerial(y, m, 1)
MsgBox a
MsgBox DateValue(a - 1) '月末日
MsgBox Day(DateValue(a - 1))
End Sub
注釈の’を適当に外して確認してください。
お礼コメント
rufas

お礼率 75% (315/420)

有難うございます。ですが、初心者のため注釈の'のどれを外せばいいのかわからなくてメッセージボックスが出てきませんでした。すいません・・・
matsu = day(DateSerial(year(now),month(now)+1,0))
でなんとかできているような感じでしたので、理解できたこれでいこうかなと思うのですが・・・間違ってますか?間違ってたらこのシステムを納めて間もなく社員からいろいろ言われるんでしょうね(^_^;)
バグ処理に追われそうです。有難うございました。
投稿日時 - 2002-06-24 21:05:38


  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

ある月の翌月の0日がある月の末日になります。
(DateSerialの月に13や日に0をセットできます。)

Sub matuCalc()
  Dim 年 As Integer
  Dim 月 As Integer
  Dim matsu As Integer

  年 = Year(Now())
  月 = Month(Now())

  matsu = Day(DateSerial(年, 月 + 1, 0))

  MsgBox matsu
End Sub
お礼コメント
rufas

お礼率 75% (315/420)

有難うございました。私もその方法を思いつき、試してみました。できそうだたので、これでいきたいと思います。またお世話になるかと思いますのでよろしくお願いします。
投稿日時 - 2002-06-24 21:36:46
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

ページ先頭へ