文字列とdateをイコールにするには」という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。Applications)のコードを探している方による検索でしょうか。Subメッセージボックスには「今日ではありません」と表示されてしまいます。文字列としての「平成26年8月28日」とDate関数で返される日付をそのまま比較してもイコールにはなりません。文字列とdateをイコールにするには」という検索をした方は、これをどうにか比較する方法を探していたのではないかと想像しています。[スポンサードリンク]CDate関数で文字列を日付に型変換して比較するサンプルマクロ文字列と日付の比較を行うには、文字列を日付型に変換してから比較しましょう。SubCDate関数は、日付として解釈可能な文字列であれば、引数に指定された文字列を日付型に変換してくれます。日付として解釈可能な文字列であれば、CDate関数で日付に変換してからDate関数で返される今日の日付と比較すればOKです。ThenCDate関数で日付に変換できるのは日付と解釈できる文字列だけCDate関数で日付型に変換できるのは、あくまでもVBA的に日付と解釈できる文字列に限定されます。"20140828"とした場合は、ダメです。「平成26年8月28日」という文字列をVBAは日付と解釈できますが、「20080828」の場合は日付と解釈できないのです。日本人でパソコンを使っている人の場合、YYYYMMDD形式の文字列・数字を日付と理解することは特殊なことではありませんが、VBA的には文字列や数値としか解釈できません。YYYYMMDD形式のデータの場合、事前に日付に変換する処理を入れてください。SubYYYYMMDD形式のデータを日付型データに変換する方法はいろいろとありますが、ここではFormat関数を使っています。Format関数を使って「20140828」という文字列を「2014/08/28」という文字列に変換してから、CDate関数で日付型に変換してやればDate関数の返す今日の日付と比較できるようになります。Officeの使い方などを紹介し続け(2012年頃からはVBA関連記事が多め)、毎日5万人の方にご覧いただいています。