[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロのループ処理』(ちょこ)
表の中から今日の日付と一致したらメッセージボックスに表示するという マクロをつくっているのですが1つだけなら表示することが出来ました。 しかし同じ日付は1つとは限らず複数ある場合もあります。 そこでメッセージボックスに複数表示する為にループ処理をしたいのですが 行き詰ってしまいました。 このマクロにループ処理を組み込むにはどこにどんな構文?を入れたら良いのか 教えて下さいませんか?
Sub Sample5()
Set FoundCell = Range("B:B").Find(What:=Format(Now(), "yyyy/mm/dd"), LookIn:=xlValues)
MsgBox "見つかりません" Else MsgBox FoundCell.Offset(0, 1) End If End Sub
まず、アップされたコードで1つは検索できているとしたら、B列の日付というのが、どんな日付なのかな? もし、通常の「日付型」データならマッチしないようにも思えるけど・・・・ なので、文字列型として 2011/11/30 といった形なんだろうね。
ということを前提に。
Sub Sample() Dim FoundCell As Range Dim First As Range
Set FoundCell = Range("B:B").Find(What:=Format(Now(), "yyyy/mm/dd"), LookIn:=xlValues) If FoundCell Is Nothing Then MsgBox "見つかりません" Exit Sub End If Set First = FoundCell Do MsgBox FoundCell.Offset(0, 1) Set FoundCell = Range("B:B").FindNext(FoundCell) Loop While FoundCell.Address <> First.Address
Set FoundCell = Nothing Set First = Nothing
End Sub
それと、テーマとは関係ないけど変数は必ず宣言しようね。
(ぶらっと)
ぶらっとさん、ありがとうございます。 試したところばっちり動きました! あと、変数の件ですがループ文を模索中に間違って消してしまってたみたいです; あのあと動かなくて「え!?なんで!?」ってなりました; 一応元のコードです。
Sub Sample5() Dim FoundCell As Range Set FoundCell = Range("B:B").Find(What:=Format(Now(), "yyyy/mm/dd"), LookIn:=xlValues) If FoundCell Is Nothing Then MsgBox "見つかりません" Else MsgBox FoundCell.Offset(0, 1) End If End Sub
あと、作ってもらっといて厚かましいのですが、 このメッセージ、1つずつでなく1回で全て表示することは出来ますか? もしお時間あればよろしくお願いします。 出来るだけ自分でもがんばってみます。(ちょこ)
Sub Sample2() Dim FoundCell As Range Dim First As Range Dim v() As String Dim k As Long
ReDim v(1 To Range("B" & Rows.Count).End(xlUp).Row)
Set FoundCell = Range("B:B").Find(What:=Format(Now(), "yyyy/mm/dd"), LookIn:=xlValues) If FoundCell Is Nothing Then MsgBox "見つかりません" Exit Sub End If Set First = FoundCell Do k = k + 1 v(k) = FoundCell.Row & "/" & FoundCell.Offset(0, 1).Value Set FoundCell = Range("B:B").FindNext(FoundCell) Loop While FoundCell.Address <> First.Address
ReDim Preserve v(1 To k) MsgBox "以下の行に当日の日付がありました" & vbLf & Join(v, vbLf)
Set FoundCell = Nothing Set First = Nothing
End Sub
(ぶらっと)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.