マクロを使って未来の日付を算出する方法

このQ&Aのポイント
  • マクロを活用して、未来の日付を算出する方法について教えてください。
  • エクセル関数ではなく、マクロを使用して周期設定された未来の日付を算出したいです。
  • B2セルには年の周期、B3セルには月の周期、B4セルには日の周期を入力し、B5セルに算出結果が表示されるようにしたいです。また、算出結果が今日の日付を超えた場合には、セルを赤色に塗りつぶしたいです。
回答を見る
  • ベストアンサー

マクロで未来?の日付を算出する

未熟なマクロ使いです。 エクセル関数では無く、マクロで周期設定された未来の日付を算出したいのですが。 自分でも意味不明な質問かなと思っちゃいますが、下記を見れば何となく分かるような気もします。 ・B2セルは『年』の周期を入力する箇所 ・B3セルは『月』の周期を入力する箇所 ・B4セルは『日』の周期を入力する箇所 ・B5セルは『周期到達予定日』が算出される ← 未来の日付算出箇所 ・B6セルに最終履歴の日が表示されている ・周期到達予定日が、今日の日付を超えていた時にセルが赤色に塗りつぶされる あと、これをC列、D列・・・・と繰り返し入力したいなと思っていますが、 少し前に質問で聞いたので、自分で頑張って、できなければ質問する事にします。 御指導お願いいたします。

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

  • ベストアンサー
回答No.2

こんにちは。 『周期到達予定日』というと、こちらも、あるイメージはあるけれども、ふつうは、ある程度の機械的な増減を繰り返して振動するものに対して、過去のピークと底を取って、次のピークを割り出すものに使われます。例えば、株価などが、それに当たります。 より具体的に、数式で表せられるようなものなら解決は早いのですが。 ただ、全体・詳細で、ある程度の俯瞰(ふかん)が利けば、より解決に近くなるのですが、今のままですと、イメージもなしで、言葉だけでは無理だと思います。こちらの勝手な想像ですが、おそらくお仕事のもので、その内容を流出させてはならないにしても、真夜中にアップして出しているとなると、ただならぬことだと思います。 質問方法としてお勧めするわけではないのですが、ここの掲示板では、ご自分の臨時のプライベートサイトを設けて、そこにアップさせ、掲示板でリンクをさせておいて、回答者に理解され解決したら、そのリンク先の内容を消してしまうという方もいるようです。本来、画像のイメードだけでもよいと思います。後で消せますから。 >マクロで日付を分解(年/月/日)する方法が分かりません。 Sub Test1() Dim a As Variant a = Range("A1").Value  If IsDate(a) Then     MsgBox Year(a) & "年" & vbCrLf & _     Month(a) & "月" & vbCrLf & _     Day(a) & "日"  End If End Sub

kero1192kero
質問者

お礼

言葉足らずで申し訳ありません。 仕事で使いたいなと思っている程度です。別の質問を立てたのでそちらの方で回答して頂けたら嬉しいのですが・・・。もしかしたら、そちらの方もあまり分かりにくいかも?ですが。お返事ありがとうございました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

こんばんは。 マクロに「やらせたい」作業を、自分がマクロになったつもりで手作業で実施してみます。 すると例えば 1)そもそも起算日のデータが無い 2)どこまで周期をアップしていけば「到達日」になるのか、周期の加算を終了する判断のネタが無い 3)例えば月を1周期動かした日付は、そもそも日の周期から外れている 4)「最終履歴の日」ってまるでイミフメイ といった具合の、意味不明なんじゃなくて単純に説明が全然足りてない事が判りますよ。 もう一回、何をどうしたいのかご自分の手を動かして数字を作ってみてから、改めて今度はキチンと「こういう具合に自分で手を動かしたら出来た内容を、マクロで書いてしたいけどどうしたらいいのか」とご相談を書きなおしてみてください。

kero1192kero
質問者

お礼

すみません。 マクロで日付を分解(年/月/日)する方法が分かりません。 どうしたら出来るんですか?

関連するQ&A

  • マクロ 未来の日付を算出する その2

    まだまだ未熟な者です。 年と月と日の加算を同時に成立させて、未来の日付を表示させようかなと思っています。加算を同時成立させる方法が分からなくて、以下の方法を取りましたが、マクロがまともに動きません。以下の記述方法の場合、どの点が間違っているのでしょうか?御指導お願いします。 Sub 周期到達日を算出する(2)() Sheets("日付").Range("C6").Value = DateAdd("yyyy", Range("C3"), "1900/1/0") Sheets("日付").Range("C7").Value = DateAdd("m", Range("C4"), "1900/1/0") Sheets("日付").Range("C8").Value = DateAdd("d", Range("C5"), "1900/1/0") Sheets("日付").Range("C10").Value = Range("C3") + Range("C4") + Range("C5") + Range("C9") End Sub

  • エクセルマクロで日付検索について

    エクセルのマクロで日付を検索するマクロについて質問です。 ブックAのシート1のA列に A1 2017/3/13 A2 2017/4/1 A3 2017/4/19 A4 2017/5/16 A5 2017/7/17 A6 2017/9/5 というような日付が入っています。 ブックBのシート1のA1セルに2017/6/3と入力してマクロを実行した際に その日付に一番近い一つ前の日付を探し、見つけた日付のB列のセルを ブックBのシート1のA2セルに表示したいです。 今回の例であれば2017/6/3に対してブックAのシート1のA列はA4セルが当てはまり その当てはまったA4セルの1つ横のB4セルの内容をブックBのシート1のA2セルに表示するということです。 よろしくお願いします。

  • EXCEL VBA マクロ 日付

    こんばんわ。 EXCEL VBA マクロ の日付について質問があります。 セル"A1"で"年"(例:2008)、セル"B1"で"月"(例:5)を指定します。 C1からC500くらいまで(毎日増えていきます)日付が入っています。 A1、B1で指定した年月と同じC列の日付を 10桁スラッシュ区切りの形式(例:2008/05/15)で 右隣のセル(D列)にコピーしたいんです。 困ったことにC列は形式が決まっているわけではありません。 たとえば、2008年5月15日の場合、 ・20080515・2008年5月15日・2008.05.15・2008.5.15 ・2008/05/15・2008/5/15・08/05/15・2008-5-15 その他、いろいろ考えられます。 これをマクロでやるにはどうすればいいでしょうか。 毎月一回実行します。 日付の形式をチェックするところで やり方がわからなくて困っています。 よろしくお願いします。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • Excelのマクロで基準日から見た日付の前後を判定したい

    Excelのマクロについて質問です。 初歩的な内容かもしれませんが よろしくお願いします。 マクロで日付を扱おうとしたのですが うまくいきませんでした。 ある日付が基準日から見て前の日か後ろの日かを 判定しようとしたのです。 たとえば セルA1に入力した日付が 今日より先ならセルB1に「1」を 後なら「2」を表示しようとして If Range("A1") > "=TODAY()" Then Range("B1") = 1 Else Range("B1") = 2 End If このようにすると セルA1にどのような日付を入れても セルB1は「2」と表示されてしまうのです。 "=TODAY()" の部分に問題があるのでしょうね。 でも、確かこれで今日という日付を 表しているのではなかったでしょうか… 日付はどのように扱われているのでしょう。 回答をお待ちしております。

  • 日付データから曜日算出について

    お世話になります。 エクセルで、A列に日付のデータが有り、B列に =A1  として、書式設定のユーザー定義で aaa として曜日をB列に 算出しようとしましたが、うまくいきません。 うまくいかない理由は、日付データの頭に ' が入っている 為です。LEFT関数で抽出してから、コピーして値貼り付け しても ’ は消えません。一セルづつ ’をデリートすれば 消えますが、4万行ほどあり、とてもやってられません。 いい方法ないでしょうか。 お教え頂きたく宜しくお願い致します。

  • マクロに詳しい方!エクセルの日付入力について

    エクセルの日付入力について、例えばB列に何か入力したら自動的にA列に入力した日がB列に表示されるようにする方法(TODAY関数のように常に現在の日付ではなく、入力した日のまま固定にする方法)について検索したところ、下記の通り、マクロをつかった回答がありました。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1413916824 B列に入力し、A列に日付を書き込む場合 B1→A1 B2→A2 B3→A3 … -------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 2 Then Exit Sub Application.EnableEvents = False Target.Offset(, -1).Value = Now Application.EnableEvents = True End Sub -------------------- 小生はマクロが分かりませんが、上記のコードをコピペ入力すると、その通りになりました。 そこで、みなさんにご相談ですが、これをA列に入力→B列に日付、C列に入力→D列に日付、E列に入力→F列に日付・・・・・というようにしたいのですが、そのコードを教えて頂けないでしょうか。 何卒お知恵をお借りしたくお願い致します。

  • 日付を選ぶと月だけ入力されるマクロが作りたい

    A4~A369のセルに日付が入っています。2012/1/1~2012/12/31をセルの書式設定の ユーザー定義でm"月"d"日"にして、1月1日といったように表示されるようにしています。 任意の日付のセルをクリックで選ぶと、B1、G1、L1、Q1セルに選択した該当のセルの 月のみ入力されるマクロを作りたいですがなかなかできません。どのようなコードを入れた らよいのでしょうか。。例えばA368セルの12月30日をクリックするとB1、G1、L1、Q1に12と 自動で入力されるイメージです。

  • 自動で採番と日付を入力するマクロ

    Sheet1のC列に何かを入力すると、A列に1から番号が振られていき、B列には入力した日付が 入っていくマクロを作りたいです。ご教授教えていただければ幸いです;

  • 日付自動実行マクロについて質問です。

    エクセル2000で日計表を作成しています。 A列には日付のシリアル値が、B列には日付、C列には曜日が入っています。 毎日データを挿入するのはD列からとなります。 そのファイルを開いた時に自動実行マクロでその日のD列にセルを飛ばすのにはどうしたらいいでしょうか? 苦労しています、どなたか詳しい方教えていただけると助かります。

専門家に質問してみよう