• ベストアンサー

VBAでのDATEについて

よろしくお願いします。 y年m月の月末日を求めるとき、ワークシート関数(EOMONTHを使わないとして)では、 =date(y,m+1,1)-1     翌月1日の前日 として求められますが、VBAではどのように書くのでしょうか?VBAで使えそうな日付関数を調べたのですが、よくわかりませんでしたので。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

DateSerialです。 使い方は関数の Date と同じ Date が 関数の Today() と同じ 今月末は Sub Test()  MsgBox DateSerial(Year(Date), Month(Date) + 1, 0) End Sub

prairie-gentian
質問者

お礼

ありがとうございます。同じ名前の関数の使い方が違うので、戸惑ってしまいます。

その他の回答 (1)

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

DateSerial 関数あたりを使ってください。 DateSerial(Year(Now()), Month(Now()) + 1, 0)

prairie-gentian
質問者

お礼

ありがとうございます。同じ名前の関数の使い方が違うので、戸惑ってしまいます。

関連するQ&A

  • 日付計算について

    エクセルのEOMONTH関数についてお尋ねします。 例えば、請求日によって締切日を変更する(月が変わる)、 =IF(DAY(A1)>=16,EOMONTH(A1,1),EOMONTH(A1,0)) という数式は、一番ベーシックなものであるかと存じます。 考え方はこれとまったく同じなのですが、求める日付が当月末&翌月末ではないのです。 3ヶ月後の10日&4ヶ月後の10日になるようにしたいのです。 EOMONTH()←この()内で求める値を変化させればよいのでしょうか? だとすれば、どのような形にすれば良いでしょうか? また、EOMONTH関数ではダメということであれば、どのようにすれば求められるのでしょうか。 =DATE(YEAR(S1),MONTH(S1)+1,10) をつかってみたり、色々調べてEOMONTHに辿りついたのですが、 3ヶ月後&4ヶ月後、おまけに月末以外の日付(締日の関係上)という2点で 行き詰ってしまいました。 Excelは2003と2007の2種類のバージョンで利用しております。 どうかよろしくお願い申し上げます。

  • 得意先の締日により該当月を変更するには

    得意先により25日締め、27日締め、月末締めがあります。25日締めはA社のみ、27日締めはB社、C社の2社、後は全部月末締めです。 会社コードがA社で注文日付の日付数字が25以下なら当月、25以上なら翌月、27日締めの2社も同様にコードから27以下なら当月、27以上なら翌月、それ以外はすべて当月とする関数文が作れればと考えています。 そこでAR1からAV1まで上記条件を満たすために必要と思われる、注文日付、会社コード、日数、当月、翌月を求める関数をいれてみました。 A社コード:10090 B社コード:10097 C社コード:10098 AR1に注文日付が入ります。(例: 2018/12/23)  AS1に会社のコードが入ります。AT1には=DAY(AR1)の関数が入り日付の数字が入ります。 AU1には該当月を求める関数=MONTH(AR1)、AV1には翌月を求める関数=EDATE(AR1,1)が入ります。 その結果を求める関数をAW1当たりに入れたいと考えています。 あくまでも締日による該当月が求められれば良いので、もっとセルを使っても問題ありません。 もしこれが無理であれば、日付マスタ(シート名)を使う事は可能でしょうか。日付マスタはA列のA2からA150まで得意先名、K列のK2からK150まで該当締月が自動で入る関数が入っています。途中E列には会社コードが入っています。 月末締めは=EOMONTH(TODAY(),0)、25日締めは=EOMONTH(TODAY(),-1)+25が入っています。27日締めは同様に=EOMONTH(TODAY(),-1)+27が入っています。 このマスタにうまく締日による該当月の数字列を加えることはできないでしょうか。

  • VBAで月の日数を表示させたい

    EXCEL2000でVBAを作成しています。 シートのセルに =EOMONTH(T4,1) という公式がはいっています。表示は平成17年10月分になっています。 ここのセルの日付に応じて月日数を表示したいのです。 何をしたいかというと 単価×31(月の日数)の計算をするため月日数をセルに自動入力したいのです。 よろしくお願いします。

  • エクセル VBAの日付計算?について

    現在sheet1にある表をsheet2に転記してゆくVBAを作成しております。sheet1にある日付データセルA1(日のみ)が入っているセルと月初を求めるVBA(DateSerial(Year(Date), Month(Date), 1))を加算して西暦/月/日にしたいのです。 例えば、DateSerial(Year(Date), Month(Date), 1)の答は、2005/05/01になってきます。そこに日付データセルA1が20だとすれば、表示は、2005/05/20となると思います。それをsheet2 セルA1に表示させたいのです。 よろしくお願いします。

  • DATE関数 4月31日などのありえない日付について

    エクセル初心者です。よろしくお願いします。 「DATE」関数で。2005年4月31日など ありえない日付を入力しても「38473」と シリアル値が帰ってきます。 しかし、別のシートで同じことをすると、 「ありえない日付」をエクセルが判断して、 シリアル値が帰ってこないようになっていました。 この差がなんなのか、よくわかりません。 数字が帰ってこないシートは上級者からのもらいもの です。ためしに、そのシートの数式をすべてコピーして みましたが、コピーされた側の空白セルで 「DATE」関数を打ち込むと、また普通に ありえない数字が帰ってきました。 まるで、上級者の人が作った原本シートだけ 「ありえない日付のシリアルは返さない」 設定がされているように思えました。 ただし、それは関数によるものではないと思います。 関数ごと丸々コピーした別のシートでは、 同じ結果が返ってこなかったからです。 どなたか、解答、アドバイスをお願いします。

  • excel vba 一番効率の良い方法を教えてください。

    こんにちは。よろしければ教えてください。 VBAで、テキストデータから読み込んだ日付「20080825」を、 エクセルシートに貼り付ける際(又は貼り付けた後)に、 「2008/08/25」と表示すると同時に「日付」として認識できる形 にしたいのです。(つまりシリアル値に変換したいということに なるのかな?) ○読み込むデータは8ケタの数値です。 ○当然ながら、セル1つにつき1つの日付です。 ○データが多いので、一つ一つ変換すると時間がかかります。   (しかしこの方法しか思いつきません;) ○VBAでもワークシート関数でも…方法は問いません。 一番適している方法を教えてください。 よろしくお願い致します。

  • VBAで月末日の求め方について

    Excel VBAでUserForm1で年月日を入力すると、その月の月末日を取得したいと思っています。 下のようなプログラムにすると、 「2006/3/1」と入力された場合は、lasDayに「31」が取得されるのですが、    myDate = TextBox1.Text    lasDay = Day(DateAdd("d", -1, DateAdd("m", 1, myDate))) 「2006/3/5」などと入力された場合もlasDayに「31」を取得するには どのようにしたらよいのでしょうか。 また、入力された日にちが25日以降の場合は、 翌月の月末日の値を取得したいのですが、どのようにしたらよいのでしょうか。 (例:「2006/2/25」と入力したら、lasDayは翌月(3月)の月末日「31」を取得) どのたか回答お願いします。

  • DBにあるdate型の日付に関して

    お世話になっております。 MySQLへ登録されているdate型の日付($date = date("y-m-d");で登録)があるのですが、本日の日付と照らし合わせた際、1年以内であれば可。過ぎていれば不可。のようなスクリプトをif文を用いて...と考えているのですが、どういった関数が適しているのでしょうか? お恥ずかしい限りでは御座いますが、色々調べているものの、どれが適した関数かさえ分からず、ヒントだけでもご教授願えればと思っております。 お忙しい中恐縮ですが、宜しくお願い致します。 動作環境 php4.3 MySQL4.0

    • ベストアンサー
    • PHP
  • Gスプレッドシートで日付計算

    現在Googleスプレッドシートで、毎月末までに納品した仕事は、その月の月末に請求を出すので =IF(A1="","",IF(DAY(A1)<=EOMONTH(A1,1),EOMONTH(A1,0),EOMONTH(A1,1))) で請求日を計算しています。 毎月20日までに納品した仕事は、その月の月末に請求を出す場合(21日に納品した仕事は翌月末)に請求日を算出するにはどのように記述すればいいでしょうか? お知恵を貸していただけると助かります。

  • DATE関数とTEXT関数で作成しています。

    DATE関数とTEXT関数で作成しています。 みんなが使うので、 セルをDELETEしますと、消えてしますので、VBAで作成したいと思います。 A1セルに年、B1セルに月、C1セルに日を入力しております。 D1にDATE(A1,B1,C1)、E1にはIF(B1=””,””,(TEXT(DATE(A1,B1,C1))を入力してます。 これをVBAで作成したいのですが、 sub 日付() formura 日付(A1,B1,C1)ここからがわかりません。 end sub よろしくお願いします。

専門家に質問してみよう