=TODAY() について

このQ&Aのポイント
  • TODAY() と行の数字が等しくなった時に、行数字の下に「1」と表示するマクロの作成方法について質問です。
  • TODAY()=4 を認識させる方法を教えてください。
  • 月が切り替わると自動的に「1」の入れる月をずらしていきたいのです。
回答を見る
  • ベストアンサー

=TODAY() について

あるCell に =TODAY()を与え、ユーザー設定にて「m」とし表記「月」のみとしています。  ある行に数字 1 2 3 4 5 6 7 8 9 10 11 12 と記述しています。   やりたいことは。 TODAY() と 行の数字が等しくなった時(今は4月ですので4=4となれば・・・)、 行数字の下に「1」と表示する。(行4の下に1と表示) 月が切り替われば自動的に次の月の下に「1」が表示されるようになる。 行数字を認識して「1」を表示し月が切り替わるでのマクロは問題ないのですが。 TODAY()=4 を認識させるところでつかかってしまいます。 TODAYは「m」としているので見た目としては4ですが、認識としては=TODAY() または2011/4/5(今日の日付) または40432(表記数値)でないとイコールとして認識してくれません。 イコールの数字を1 2 3 4 5・・・と固定している為。 どうにかTODAYを4や5などの月のみで認識させたいのですが、不可能でしょうか・・? 月が切り替わると自動的に「1」の入れる月をずらしていきたいので。   色々調べましたがなかなかHITせず投稿させて頂きました。 何卒知識をお貸しいただけたら幸いと思っております。

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

「=TODAY()」の代わりに「=MONTH(TODAY())」を使って下さい。 MONTH は日付値から、月を抜き出す関数ですので今日なら「4」という数値になります。 (書式設定を「m」ではなく、「標準」か「数値」に戻すのをお忘れなく)

osa0415
質問者

お礼

解決できました!ありがとうございました! 1番先に回答いただきました方をベストアンサーにさせていただきました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

これはVBAの質問ですか? それにしてもエクセルで、日付は、セルの値は、日付シリアル値で持たれていること(最も基礎的なこと)を知らないで長々下質問なっているのでは。40432(とか言っている考え方を理解してください。 だから、情報的にはその一部の月数字を出すのも、関数(日付シリアル値向けの関数)のお世話にならないと、月数字は分かりません。 Monthといった関数がエクセル関数やエクセルVBAの関数にあるから、それを使えば仕舞い。 エクセルの基礎的なことを知らないでVBAをやるのは不完全です。 ーー もうひとつ「セルの値」と「セルの表示形式の適用結果の見た目」との区別が、質問者ははっきり認識出来てないのではないか。 エクセル関数は「セルの値」で計算や、加工などをやるものだ。 ーーー それに質問の書き方で >ある行に数字  >TODAY() と 行の数字が等しくなった時 とか列のことが書いてないが、はっきりB2:M2とか書くべきです。 でないと1セル(例B2)に「1 2 3 4 5 6 7 8 9 10 11 12」が入っていると解される恐れがある。 関数で B3に=IF(MONTH($A$1)=B2,1,"")ト入れてM列まで式を複写しておく。 現在日ではE3セルが1となる。A1は絶対番地にすること。 ーー VBAでの回答は省略。色んな方法が考えられる。 4月ならB3から考えて4番目(Offset)の列の第3行のセルに1を入れるなど。 第3行目のB3:M3の範囲を月数字と同じかくり返しIFで聞くとか。 Match関数、Findメソッドでみつけるとか。 もあろう。

osa0415
質問者

お礼

1番先に回答いただきました方をベストアンサーにさせていただきました。 専門的にVBAや関数を扱っていなく突発的に行わなければいけず、自己で悩み考え解決出来なかった部分を質問させていただきました、基礎が歯抜けになっているのは承知ですが少しずつですが精進してる次第です。 指摘とても身になりました、無知によるご無礼大変失礼しました、ご指導ありがとうございました。

回答No.2

「どうにかTODAYを4や5などの月のみで認識させたいのですが、不可能でしょうか・・?」については・・・ =MONTH(TODAY()) とすれば月が返ってきますのでお試しください。

osa0415
質問者

お礼

解決できました!ありがとうございました! 1番先に回答いただきました方をベストアンサーにさせていただきました。

関連するQ&A

  • エクセルでのTODAY関数

     TODAY関数は、そのファイルを読み込んだ日を自動的に表示させるものだと思うのですが、たとえば、平成19年1月21日にファイルを開いたとすると、その日付が設定した箇所に自動的に入力されます。  したがって、同じファイルを後日開くとその日付は、その後日、たとえb、平成19年2月1日に開くとその日付が入力されてしまいます。  たとえば、シートのある箇所の設定を シート1 契約書の契約日として、そのファイル読み込み日(ファイルを開いた日)を自動入力。ただし、日付の更新はしない。上記読み込み日に固定。 シート2 報告書の契約日として、シート1の日付を自動入力。入力日はシート1の入力日と同じこともあれば、違う日のこともある。 というような設定にするには、TODAY関数をどうカスタマイズすればいいのでしょうか。 表計算、関数、マクロはあまり得意ではありません。特にマクロはやったことがありません。よろしくお願いします。

  • TODAY関数に関して

    エクセル2010です。 あるファイルの日付項目を この関数を使って使用しようとおもいましたが 営業日は 日にちをまたがいで前日日表示をしたいので =TODAY()-1 のように前日の日付を表示しようしたくおもったのですが  このTODAY関数はファイルを開くと 認識するかんじなのでしょうか? たちあげっぱなしで書き直して 上書き保存では 認識されないのでしょうか? また 前日の日付を ファイルを開いたま 表示させる 便利な方法はないでしょうか?

  • TODAY関数について

    エクセルファイルを 24時間ずっと開きっぱなしの状態で ファイル内にTODAY関数があると 0:00の日付が変わったタイミングで 日数が変わりますか? それとも一度ファイルを閉じてから 開かないとTODAY関数は機能しないので しょうか? その場合0:00になったら TODAY関数を自動更新させる 方法はありますか? (マクロでも可) すいませんが回答よろしくお願いします

  • マクロ"today()"について

    ボタンをクリックしてマクロを実行させます。 マクロの中に range("a1").value="today()" range("a2").value="クリック済み" と記述しています。その為クリックするとその「日付とクリック済み」が表示されますが後日ソフトを立ち上げるとクリックしないのに日付がその日その日に更新されます。この日付が更新されずにクリックした日付を表示させるためにはどのように記述したらよいでしょうか。

  • エクセル2000:「半角数字で年/月/日と入力する」と表示され、入力できない

    会社で使用しているエクセルの書式があるのですが、日付が入っているセルに「=TODAY()」が入っていました。 自動的に今日の日付が入るわけですが、日付を入れたくなかったので、「=TODAY()」を消し、「平成  年  月  日」と入力すると、ダイアログが表示され、「半角数字で年/月/日と入力する。」と表示されます。 ここから困っているのですが、表示形式を日付から標準や文字列等に変えても、同じダイアログが出ます。入力する文字は、数字・アルファベット・ひらがな・漢字のどれを入力しても、全角・半角のどちらを入力してもダメでした。 半角で「2007/1/1」と入力してもダメです(泣) IFやSUM関数を入れても表示されないのですが、TODAYだけ、入力が出来ました。 私が作った書式ではないため、何が問題なのかさっぱり分かりません。 ちなみに、その書式にはマクロが入っています。(印刷の設定をマクロでしているようなのですが、書いてあることはよく分かりません。)これを無効にしても、ダメでした。 長くなり申し訳ありません。 「=TODAY()」しか入力を受け付けないのはどうしてなのでしょうか? どうすれば、通常の入力ができるのでしょうか? ご存知の方、よろしくお願いします。

  • Excel:TODAY関数について

    お世話になります。 毎日変動する数値の平均、最高、最低値を表示したセルの右にTODAY関数で現在の日付を表示しています。 シートは月ごとにしようと思っています。そこで2月のシートに3月5日などと表示しないように、月が変わったらセルを空欄にしたいと思っているのですができるでしょうか? つまり2月なら2月28日まではTODAY関数が働き日付を表示し、3月1日以降そのセルを空欄にしたいわけです。 Excel2000です。 よろしくお願いします。

  • エクセルのTODAY関数の表示について

     TODAY関数で日付けを表示させると「2003/5/28」と表示されるんですけど、これを平成15年5月28日と表示させるにはどうすればいいんでしょうか????

  • セルの数字をマクロに

    os xp excel 03 Sub a() Range(" k7").Select    '----- カーソルをcell位置へ c = 8338     '<----- セルm7に入力した数字を表示したい With ActiveSheet     '----- 次の行で cell m6 に作成----- =RSS|'8338.T'!現在値 .Cells(6, 13).Formula = "=RSS|'" & Format$(c, "0000") & ".T'! 現在値 " End With Range(" k9").Select     '-----カーソルをcell位置へ End Sub 質問は  c = 8338     '<----- セルm7に入力した数字を表示したい (1) 都度マクロを開けて c = の処に数字を入力ではなくセルm7に入力した数字を表示したい

  • Today関数+文字

    一つのセルの中にtoday関数+文字で表示させたいんですが どうすればよいか教えてください。 例)今日の日付+文字  「2008年8月15日 現在」のように。

  • エクセル 1つのシートを日付で複数シートに分けたい

    エクセル2007を使用してます。初心者です。 1行名に列ごとのタイトルが入ってます。 A列~S列まで色々とデータが入っており、M列に日付(20140618のように)が入ってます。 このシートを日付ごとに別シートに分けたいのですが、何か計算式かもしくはマクロでできますか? できれば、R列に入っている数字を日付のあとにつけて自動で保存できると大変助かるのですが・・・。(20140618-2 というような感じ) マクロの扱い方も良く分からないので教えていただけると助かります。

専門家に質問してみよう