Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9031 / 13644 ツリー ←次へ | 前へ→

【29684】findで見つからなければメッセージボック... kono 05/10/11(火) 19:33 質問[未読]
【29687】Re:Findで見つからなければメッセージボッ... かみちゃん 05/10/11(火) 19:55 回答[未読]
【29709】Re:Findで見つからなければメッセージボッ... kono 05/10/12(水) 10:51 お礼[未読]

【29684】findで見つからなければメッセージボック...
質問  kono  - 05/10/11(火) 19:33 -

引用なし
パスワード
   findメソッドでA列を検索し、見つかればI列に日付を入力するための
ユーザーフォームを作っています。
検索の条件に当てはまるセルが見つからなかった場合に
メッセージボックスで「ありません」と表示をしたい場合は、
下記のコードのどの部分に書いたらいいか教えてください。

With ActiveWorkbook.ActiveSheet.Columns("A:A")
    i = TextBox1.Text
  If i <> "" Then
     Set r1 = .Find(what:=i, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False)
    If Not r1 Is Nothing Then
   
    ra = r1.Address
    Do
    r1.Offset(0, 8).Value = henkyaku
        Set r1 = .FindNext(r1)
    Loop While Not r1 Is Nothing And r1.Address <> ra
    End If
    End If
    End With
    End Sub

どうぞよろしくお願いします。

【29687】Re:Findで見つからなければメッセージボ...
回答  かみちゃん  - 05/10/11(火) 19:55 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>検索の条件に当てはまるセルが見つからなかった場合に
>メッセージボックスで「ありません」と表示をしたい場合は、
>下記のコードのどの部分に書いたらいいか教えてください。

Findメソッドのヘルプに「検索の条件にあてはまるセルが見つからなかった場合
は、Nothing を返します。」と書かれていますので、
以下の★部分を記述します。

  If Not r1 Is Nothing Then
   ra = r1.Address
   Do
    r1.Offset(0, 8).Value = henkyaku
    Set r1 = .FindNext(r1)
   Loop While Not r1 Is Nothing And r1.Address <> ra
  Else '★
   MsgBox "ありません" '★
  End If

なお、ここの掲示板へ投稿されるときは、インデントを整理していただけると見や
すくて助かります。今回のような質問は特に。

【29709】Re:Findで見つからなければメッセージボ...
お礼  kono  - 05/10/12(水) 10:51 -

引用なし
パスワード
   かみちゃんさま

できました。ありがとうございました。
「Else」を入れずに書いていたのが間違えていました。

質問の形態もわかりづらくて申し訳ありませんでした。
以後、気をつけます。

9031 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free