Excel VBA質問箱 IV

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

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


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

【74737】findを使った検索で見つからなかった場合に検索内容を変えたい。 ぶんぶん 13/9/5(木) 17:08 質問[未読]
【74738】Re:findを使った検索で見つからなかった場... kanabun 13/9/5(木) 17:28 発言[未読]
【74743】Re:findを使った検索で見つからなかった場... ぶんぶん 13/9/5(木) 19:44 お礼[未読]

【74737】findを使った検索で見つからなかった場合...
質問  ぶんぶん  - 13/9/5(木) 17:08 -

引用なし
パスワード
   findを使った検索です。

見つからなかった場合に、検索する内容をある規則に基づいて、見つかるまで変化させていく

といったことがしたいのです。
以下のマクロで a = Nothing となった場合に b = b + 1 として検索内容を変え、見つかるまで繰り返していきたいのですが、どのようにしたらいいのかわかりません。

よろしくお願いします。

Sub Macro1()


Dim a As Range

Dim b As Long
Dim c As Long

Dim d As String

  b = 1

  d = b & "あ"
  
  Set a = Range("A:A").Find(what:=d)
    
    c = a.Row
      
    MsgBox c
      
End Sub

【74738】Re:findを使った検索で見つからなかった...
発言  kanabun  - 13/9/5(木) 17:28 -

引用なし
パスワード
   ▼ぶんぶん さん:

1づつインクリメントしていく整数と"あ"を連結した文字列が検索文字列
ですから、こうするのも一手ですね

Sub Macro1()
 Dim a As Range
 Dim i As Long
 Dim s As String

 For i = 1 To 100
   s = i & "あ" '検索文字列
   Set a = Range("A:A").Find(s, , xlFormulas, xlWhole)

   If Not (a Is Nothing) Then '見つかったらLoopを抜ける
     MsgBox "Found " & s & " Row =" & a.Row
     Exit For
   End If
 Next
End Sub


【74743】Re:findを使った検索で見つからなかった...
お礼  ぶんぶん  - 13/9/5(木) 19:44 -

引用なし
パスワード
   ▼kanabun さん:

なるほど、そのループはかっこいいですね。しかもわかり易いです。

ありがとうございました。

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