• ベストアンサー

VBAでカレンダーの機能をうまく使いたい

VBAから日付の取得の方法で行き詰まっています。 プログラムを実行した日からさかのぼった先週の日曜日のDATEを取得し、 更に今週、来週の日曜日のDATEを取得するにはどうしたらよいのでしょうか? 希望としては以下のような形です。 本日が2012年4月1日ですので。 先週の日曜日 = 20120325 今週の日曜日 = 20120401 来週の日曜日 = 20120411 (スラッシュの有無など文字的な処理はどのような形でも問題ありません) お手数ですがお時間のある際にでもご回答をお願いします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

Dim 今週の日曜日 As Date Dim 先週の日曜日 As Date Dim 来週の日曜日 As Date 今週の日曜日 = DateAdd("D", Date, 1 - WeekDay(Date)) 先週の日曜日 = DateAdd("D", 今週の日曜日, -7) 来週の日曜日 = DateAdd("D", 今週の日曜日, 7) WeekDayは曜日を返す関数で、日曜=1、土曜=7です。 この値-1日遡れば今週の日曜日になります。 あとは7日前と7日後を求めれば済む話です。

master817199
質問者

お礼

ばっちり思い通りに行きました ありがとうございました。

関連するQ&A

  • カレンダーにおける曜日の数え方を教えていただけますか。

    カレンダーにおける曜日の数え方を教えていただけますか。 先ほど母から連絡がありました。 友人と14日が今週日曜日か来週日曜日かで議論になったようです。(今日は9日火曜日) 母(65歳)は、学生の時に’今週末’イコール今週の13日14日の土曜日日曜日 来週日曜日は21日と習ったので14日日曜日は今週だといっています。 私はカレンダーが日曜日からスタートしているし、14日は来週の日曜日と習ったよと いったところ、いつごろから変わったのか?と聞かれました。 日曜日スタートで考えているのであれば、 ’今週末’に会う約束をしたら、13日だけで、14日は’今週’末にはならないのでは? といいます。日本語が変になるとまでいいます。いいかえたら今週末は7日日曜日と 13日土曜日になっておかしいとまでいいます。 そこで質問です。 1.いつごろから日本では、カレンダーが日曜日スタートが一般的になったのでしょうか? 2.昔は月曜日スタートだったのでしょうか? 3.日曜日スタートであれば、今日が火曜日であれば日曜日のことを言うのには、   今週末という言い方はおかしくないですか。 もちろん、一番てっとり早いのが曜日と日付をいうことですが、母は知りたいようです。 大昔(現在65才)学生時代に月曜日からスタートで習ったといいます。 その後、長いこと海外にいましたので日本のことを知りません。 教えて下さい。

  • VBAで当月の1日を表示するにはどの様なコードを使えば宜しいのでしょうか

    VBAでシートAのセルA1に当月の1日を表示させたく思います。 Sheets("A").Range("A1") = Date を使用し、本日の日付を表示させることは判ったのですが、この日付に含まれる月の初日(1日)を表示させる方法をご存知でしたら教えて下さい。 宜しくお願い致します。

  • 週間カレンダー vbscript

    質問です 現在ASPとvbscriptを使って、スケジュール管理システムを作成しています。 その中で、週間・月間・年間の3つのカレンダーの作成をしようと考えています。 現在の状況としては月間カレンダーは完成して、週間カレンダーを作成しているところです。 日曜始まりの月間カレンダーから、日付データを取得して週間カレンダーを作成します。 当日を含む週を表示したいです。 検索してみるとjavascriptのソースは見つかりましたが、 vbscriptでの作成を前提としています。 javascriptのソースの自力での解読も試みましたがお手上げです。 「第○週の○曜日」という意識はせず、 表示月の月始め日(1日)が何曜日か調べて、 1日が日曜でなければそこからさかのぼって 日曜日になる日付を求めるといいらしいのですが…。 丸投げする形になって申し訳ありませんが、 どなたか力を貸していただけませんか。

  • [VBA] 年度を指定し、以降の日付を表示する

    いつも大変お世話になっております。 しばらく、EXCEL担当になり、頻繁にご質問させていただくかもしれませんが、 宜しくお願いいたします。 回答をくださる方々にはいつも大変感謝をしております。 今回は、年度を指定し、以降の日曜日から始まる日付を取得できるVBAを考えております。 プルダウンで年度を指定すると、日曜から始まる日付が「~週」とプルダウンで表示され、 選択すると、固定セル(どこでも可)に 2012/8/15といった形式で、入力されるというものです。 年度指定時に、本日付近の週が表示されるとなお良いです。 追伸 実は、このあと、もう少しややこしい難題がありますので、再度投稿させていただきますが、併せて宜しくお願いいたします。 それでは、何卒宜しくお願いいたします。

  • VBA での日付の計算

    お世話になってます。 Access VBA 初心者です。 string型変数に日付(YYYYMMDD)がセットされています。 その日付に1日プラスした日付を算出したいのですが、 どうすればよいのかよく分かりません。 たとえば Dim w_Date As String w_Date = "20070726" としたならば、 w_Dateは"20070727"となるようにしたいのですが。。。 よろしくお願いいたします。

  • 月曜日から始まる週間カレンダーの作り方

    いつもありがとうございます。 下記のようなコードを書いて1週間のカレンダーを作っていますが、 どうしても日曜日からの表示になります。 この表示を月曜日から始まり、日曜日で終わるカレンダーにならないものか考えるのですが、どうもうまくいきません。 よきアドバイスをお願いします。 <? //来週・前週の---日曜日----をgetした値 $get_sunday = htmlspecialchars($_GET["get_sunday"]); $entry_day = htmlspecialchars($_GET["entry_day"]); //変数の値の識別カレンダー表示 //get_sunday (来週・前週)の値がgetされていたら if($get_sunday!=""){ //getされた日曜日の日付 $mm = date("m",strtotime($get_sunday)); $dd = date("d",strtotime($get_sunday)); $yyyy = date("Y",strtotime($get_sunday)); //getされた日曜日の日付(日のみ) $sunday_num = $dd; //getされた日曜日の日付(年月日) $kyujin_day = date("Y-m-d",mktime(0,0,0,$mm,$dd,$yyyy)); } // ================================================= //変数の値の識別           カレンダー表示 //entry_day (指定した日)の値をgetされたら if($entry_day!=""){ $mm = date("m",strtotime($entry_day)); $dd = date("d",strtotime($entry_day)); $yyyy = date("Y",strtotime($entry_day)); //$week_numに今日の曜日ナンバーを代入(mktime(0,0,0,今日の月,今日の日,今日の年) //日0・月1・火2・水3・木4・金5・土6 $week_num = date("w", mktime(0,0,0,$mm,$dd,$yyyy)); //entry_dayの値 $kyujin_day = date("Y-m-d",mktime(0,0,0,$mm,$dd,$yyyy)); //日曜日の日付(日のみ) $sunday_num = $dd - $week_num; } // ================================================= //変数の値がない場合は本日の日付の取得 カレンダー表示 if($get_sunday=="" and $entry_day==""){ $mm = date("m",time()); $dd = date("d",time()); $yyyy = date("Y",time()); //$week_numに今日の曜日ナンバーを代入(mktime(0,0,0,今日の月,今日の日,今日の年) $week_num = date("w", mktime(0,0,0,$mm,$dd,$yyyy)); $kyujin_day = date("Y-m-d",mktime(0,0,0,$mm,$dd,$yyyy)); //日曜日の日付(日のみ) $sunday_num = $dd - $week_num; } //前週、次週に日曜日の日付を取得    カレンダー表示 $sunday_last = $sunday_num - 7; $sunday_next = $sunday_num + 7; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>レンダー画面</title> </head> <body> <table> <tr> <td></td> <td bgcolor="#00FFFF">日</td> <td bgcolor="#00FFFF">月</td> <td bgcolor="#00FFFF">火</td> <td bgcolor="#00FFFF">水</td> <td bgcolor="#00FFFF">木</td> <td bgcolor="#00FFFF">金</td> <td bgcolor="#00FFFF">土</td> <td></td> </tr> <tr> <form method="get" name="form2"action="test2.php"> <td> <input type="hidden" name="get_sunday" value= "<?php echo date("Y-m-d", mktime(0, 0, 0, $mm, $sunday_last, $yyyy)); ?>"> <input type="submit" name="Submit2" value="前週へ"> </td> </form> <? //週カレンダー(前週ボタン作成)ここまで //週カレンダー日付を入れる $w2 = $sunday_num; $select_day = date("Y-m-d", mktime(0, 0, 0, $mm, $w2, $yyyy)); $i = 0; while($i < 7) { //日曜日から順に日付を$select_dayに入れていく ?> <td bgcolor="#CCFFFF"><? echo date("m月d日", mktime(0, 0, 0, $mm, $w2+$i, $yyyy)) ?></td> <? // 日付けを一つ繰り上げる $i++; } ?> <form method="get" name="form2" action="test2.php"> <td> <input type="hidden" name="get_sunday" value= "<?php echo date("Y-m-d", mktime(0, 0, 0, $mm, $sunday_next, $yyyy)); ?>"> <input type="submit" name="Submit" value="次週へ"> </td> </form> </table> </body> </html>

    • 締切済み
    • PHP
  • VBAでのDATEについて

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

  • デート

    先週の金曜日に映画に行こうと彼女を誘いました。先週の週末は予定が入ってて行けなかったですが、今週なら良いと言われていました。 昨日に電話をしていたら、”来週の火曜日に行こう”と言われました。火曜日は毎回、映画代が安いからみたいです。最近2人で出かけれていなかったので、僕は今週末も2人でどこかに行きたいなと思っていました。来週の火曜日におそらく映画を観に行きますが、その前に彼女に今週末デートしよう!といってもいいでしょうか?うざがられたりしませんか? もともと、彼女は自分からデートに誘ってくるタイプではありません。特に最近は、ここ行きたい!とかも言ってくれないです。

  • エクセル 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に表示させたいのです。 よろしくお願いします。

  • Word2007でカレンダーを作りたい。

    Word2007でカレンダーを作りたい。 挿入タブ 表 → クイック表作成のカレンダーでは カレンダー1が12月で1日が日曜日から カレンダー2が5月で 1日が火曜日からとなっています。 この日付を自動的に今年の月に合わせて日付を変更する方法が あれば教えていただきたい。 また、テンプレートをダウンロードしたのですが2008年で これを今年のカレンダーに自動的に変更する方法があれば教えて下さい。

専門家に質問してみよう