• ベストアンサー

最新の日付が含まれているセルの取得するマクロ

A1セルに2019/3/24 田中 A2セルに2019/3/24 鈴木 A3セルに2019/3/25 山田 (日付のあとの文字はAlt+Enterで改行されています) という入力がされているとき 最新の日付のA3セルを A4セルに表示するにはどうすればいいでしょうか? 日付のみの検索方法ならネットにあったのですが 文字が含まれている場合がどうしたらよいかわかりません。 ちなみにA1からA3セルの日付がすべて同じなら A1セルをA4セルに表示で大丈夫です。 A4セルに関数式などを入れておき取得できるのであれば その方法でもいいです。 よろしくお願いします。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>最新の日付のA3セルをA4セルに表示 A4セルに表示するのは最新の日付セルのアドレスなら Sub Test2()   Dim c As Range, mydate As Date, str As String   For Each c In Range("A1:A3")     If Split(c.Value, vbLf)(0) > mydate Then       mydate = Split(c.Value, vbLf)(0)       str = c.Address(0, 0)     End If   Next   Range("A4").Value = str End Sub A4セルに表示するのは最新の日付セルの氏名なら Sub Test3()   Dim c As Range, mydate As Date, str As String   For Each c In Range("A1:A3")     If Split(c.Value, vbLf)(0) > mydate Then       mydate = Split(c.Value, vbLf)(0)       str = Split(c.Value, vbLf)(1)     End If   Next   Range("A4").Value = str End Sub

yyrd0421
質問者

お礼

ありがとうございます。 test3のmydate とstr を組み合わせて目的のことが行えました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>セルの取得するマクロ なのでマクロで Sub Test()   Dim c As Range, mydate As Date   For Each c In Range("A1:A3")     If Split(c.Value, vbLf)(0) > mydate Then mydate = Split(c.Value, vbLf)(0)   Next   Range("A4").Value = mydate End Sub

yyrd0421
質問者

補足

ありがとうございます。 頂いたコードを試したところ 最新の日付は表示されたのですが そのあとの文字(A3セルなら山田)が表示されません。 名前まで表示するにはどうすればよいでしょうか?

すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.1

B1セルに以下の式を入れ、 =TEXT(LEFT(A1,FIND(CHAR(10),A1)-1),0)+0 B1セルを下にB3セルまでドラッグコピーし、 A4セルに以下の式を入れてみてください。 =MAX(B:B)

yyrd0421
質問者

補足

ありがとうございます! 申し訳ございません。 Z列ぐらいまで既に入力がされていて B列には入力出来ない状況です。 他の方法などはございませんでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A