日付を自動的に当日にすることは出来るのですが、どうしても末日にすることが出来ず、毎回入力しなくてはなりません。
自動的に末日にしたり毎月第2金曜日にしたりしたいのですが、、、出来ますか?
例えば第3木曜日だったら3月に開いた時に自動的に「3月15日」になったり。
末日なら3月に開いたら自動的に末日である日の「3月31日」になったり。それで末日が土日だったらこれまた自動的に金曜日に出来たらいいなぁと。。。
3月は31日が土曜日なので末日になるようにしてても土日だから自動的に30日になってほしい。
可能でしたら是非教えてください。そして初心者並みに解りやすくお願いします。 」
という質問をさせていただき、いろいろ教えていただいたのですが。。。祝日を考え忘れていました。グスン (ノ(ェ)'。)
土日祝祭日にかかる月は出てくると思いますので(何年先でも)それも自動的に平日になるように出来る方法を教えてください。
可能でしたら土日祝祭日の前日若しくは前前日と翌日、若しくは翌々日の両方を初心者レベルで解りやすくお願いします。
祝日は無理とか言ってる人いるけど、それはExcelの関数に無いだけ。
祝日が変わるという意見も、現在の祝日を調べる関数を作ればいいだけ。
http://www.vector.co.jp/soft/win95/business/se189574.html
この方の祝日関数を使えば楽です。
以下このWhatDay()関数をコピーして
その月の最後の平日を求めるユーザー定義関数を作ればこんな感じ。
Function Heijitu() As Date Dim mydate As Date mydate = DateSerial(Year(Now()), Month(Now()) + 1, 1) - 1 If WhatDay(mydate) = 0 Then Heijitu = "" ElseIf WhatDay(mydate) = 1 Then Heijitu = mydate Else While WhatDay(mydate) <> 1 mydate = mydate - 1 Wend Heijitu = mydate End If End Function
ごめんなさい!
どこに関数をどのように入れたら良いか解らなくて…
もう少し詳しいと助かります。
まず、VBAの始め方から
http://www.macrospread.com/introduction/images/VBA_Introduction_...
の標準モジュールにダウンロードしてきたエクセルのファイルのWhatDay()関数の全文をコピーして私の書いたコードもコピーします。
こんな感じ
Function WhatDay(日付) As Integer ・ ・ ・ End Function Function Heijitu() As Date ・ ・ ・ End Function
そして、呼び出したいセルの数式に[=Heijitu()]と入れるだけ。
ついでにそのセルの書式設定を日付にしてね。
…やっぱり途中で解らなくなります。Whatday()関数がどれかが解らなくてどこのセルに何の式を入れるのか?VBAも開いたはいいですが、何を入れるのか使った事がなくて不明です、、、
すみません
まず、末日ですが翌月1日の前日となりますので
=Today()+32-day(today())……a1
とでもすれば、今月32日(計算上の日付)が求まりますので、
=date(year(a1),month(a1),1)-1
が末日となります。ここまでを1本の式にしたければ、
=date(year(Today()+32-day(today())),month(Today()+32-day(today())),1)-1……b1
となります。
で、この日が土日だったら除くのなら
=if(weekday(b1,2)>5,b1-weekday(b1,2)+5,b1)
で金曜日になります。
第2金曜日はその月が土曜から始まる場合と、それ以外の曜日で始まる場合に分けます。
土曜日で始まる場合は、6日が第2金曜日ですから、date関数を使えば簡単に作れます。
それ以外の曜日なら、今月1日をc1とすれば
=c1+13-weekday(c1,1)
で計算できます。
すみません、、、初心者レベルでお願いできますか?Excelは使用してますが関数はせいぜいSUMくらいで他は殆ど使用したことのないもので、、、
お恥ずかしい限りですがサッパリ解りません。
???来月の0日?とはどういう意味でしょうか