ここから本文です

VBAで月初、または月末付近にだけ文字を表示させたい。 月初と月末(出来れば任...

sok********さん

2019/1/3016:50:03

VBAで月初、または月末付近にだけ文字を表示させたい。

月初と月末(出来れば任意の日)にだけ特定のセルに特定の文字を表示させたいのです。

例えば毎月月初(の平日)にA1に「今日は月初です!」などを表示させる。

シートには祝日を除く用(WORKDAY関数)のリストもあるのでマクロではなくても関数でもOKです。


月初は月初用の作業工程が、平常時は平常時の作業工程が、そして月末は月末用の作業工程があります。
ついつい、月初なのに平常時の作業として進めてしまうミスを何とかしたいと思いまして…(>_<)

月初め,月末,平常時,EOMONTH,作業工程,WORKDAY関数,WORKDAY

閲覧数:
72
回答数:
2

違反報告

ベストアンサーに選ばれた回答

kky********さん

2019/1/3107:16:04

>VBAで月初、または月末付近にだけ文字を表示させたい。
付近というのは曖昧です。月初、月末の定義を補足して下さい。
月末の方は何日間か表示したいのでしょうか?


下記の式は、本日が月の最初の平日なら「月初」、月の最後の平日なら「月末」と表示する式です。

祝日表の日付の入っている範囲を「祝日」と名前定義してあります。

=IF(WORKDAY(EOMONTH(TODAY(),-1),1,祝日)=TODAY(),"今日は月初です!",IF(WORKDAY(EOMONTH(TODAY(),0)+1,-1,祝日)=TODAY(),"今日は月末です!",""))

質問した人からのコメント

2019/2/1 08:07:00

ありがとうございます!

=IF(WORKDAY(EOMONTH(TODAY(),-1),1,祝日)=TODAY(),"今日は月初です!",IF(WORKDAY(EOMONTH(TODAY(),0)+1,-1,祝日)=TODAY(),"今日は月末です!",""))

この式、非常に助かりました。なんて素晴らしい…!!

ベストアンサー以外の回答

1〜1件/1件中

c72********さん

2019/1/3017:47:38

質問に平日やら祝日やら月末付近やら任意の日やらいろんなワードがあって主旨がはっきりしませんが、関数の場合。

平日判定
=IF(AND(WEEKDAY(TODAY())<>7,WEEKDAY(TODAY())<>1),"平日です。","平日ではありません。")
祝日判定(祝日リストがA列として)
=IF(COUNTIF($A:$A,TODAY())=1,"休日です。","祝日ではありません。")
月初判定
=IF(DAY(TODAY())=1,"1日です。","1日ではありません。")
月末判定
=IF(DAY(EOMONTH(TODAY(),0))=DAY(TODAY()),"月末です。","月末ではありません。")
3日以内に月末があるかどうか
=IF(DAY(EOMONTH(TODAY(),0))-DAY(TODAY())<=3,"3日以内に月末です。","3日以内に月末ではありません。")
任意の日判定(30日の場合)
=IF(DAY(TODAY())=30,"任意の日です。","任意の日ではありません。")

月初と月末なら、↑を組み合わせて
=IF(DAY(EOMONTH(TODAY(),0))=DAY(TODAY()),"月末です。",IF(DAY(TODAY())=1,"1日です。","月初でも月末でもありません。"))
な感じです。もっとスマートな方法あるかもですが。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる