Excel VBA質問箱 IV

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

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


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

【62891】下から検索する方法 VBA初心者 09/9/13(日) 15:43 質問[未読]
【62892】Re:下から検索する方法 kanabun 09/9/13(日) 15:58 発言[未読]
【62893】Re:下から検索する方法 VBA初心者 09/9/13(日) 16:37 お礼[未読]
【62894】[複数条件で]Re:下から検索する方法 VBA初心者 09/9/13(日) 17:03 質問[未読]
【62901】Re:[複数条件で]Re:下から検索する方法 Yuki 09/9/14(月) 10:35 発言[未読]
【62903】Re:[複数条件で]Re:下から検索する方法 kanabun 09/9/14(月) 12:01 発言[未読]
【62907】Re:[複数条件で]Re:下から検索する方法 VBA初心者 09/9/14(月) 22:20 お礼[未読]

【62891】下から検索する方法
質問  VBA初心者  - 09/9/13(日) 15:43 -

引用なし
パスワード
   自動で最新データから検索しはじめるというVBAを組みたいと思っています。
最新データというのはブックの一番下の行に毎回追加されて行きますので下から検索できればよいということです。
最初のひとつが見つかった時点で終了しそのセルがアクティブになっていてほしいです。

一応[3列目が相沢だったら]という設定で作ってみたのですが、一番下ではなくて一番上の相沢が選択されてしまいます。
何を変更すればよいでしょうか?

r = Cells(65536, 3).End(xlUp).Row
Dim i As Long
For i = r To 1 Step -1
Cells.Find(What:="相沢").Activate
Exit For
Next
End Sub

また、[3列目が他のブック(AA.xls)の3列目と同じだったら]という条件で記入するにはどのように記述すればよいですか?
たくさん質問してしまって申し訳ないですがご教授ください。

【62892】Re:下から検索する方法
発言  kanabun  - 09/9/13(日) 15:58 -

引用なし
パスワード
   ▼VBA初心者 さん:

下からFindメソッドで検索するには
検索方向を「xlPrevious」にして、検索範囲の先頭セル「のつぎのセルから」
検索を始めればよいです。

こんな感じで、Findメソッドは一回使えばよいだけですので、
Loopは不要です。

Sub Try1()
  Dim r As Range
  Dim c As Range
  Set r = Range("C1", Cells(Rows.Count, 3).End(xlUp))
  Set c = r.Find("相沢", After:=r.Item(1), _
      LookIn:=xlFormulas, LookAt:=xlPart, _
      searchdirection:=xlPrevious)
  If Not c Is Nothing Then
    c.Select
    MsgBox "「相沢」が見つかりました"
  Else
    MsgBox "みつかりませんでした"
  End If
End Sub

【62893】Re:下から検索する方法
お礼  VBA初心者  - 09/9/13(日) 16:37 -

引用なし
パスワード
   ありがとうございます!
上手く検索できました。
検索できなかった場合の対応までしてくださっていて本当スムーズに進みました。

なお、もうひとつ質問していた、[3列目が他のブック(AA.xls)の3列目と同じだったら]ということに関しても
教えたもらったも構文の最初でもうひとつ変数Aを作り、[相沢だったら]の部分をその変数Aと同じだったらという条件にしたらできました!

本当にありがとうございました!!

【62894】[複数条件で]Re:下から検索する方法
質問  VBA初心者  - 09/9/13(日) 17:03 -

引用なし
パスワード
   何度もすみません。

[3列目が相沢だったら]に加えて["3列目が相沢"かつ"6列目が24"だったら]という条件にしたい場合は教えてもらった構文をどのように変更すればよいでしょうか?

【62901】Re:[複数条件で]Re:下から検索する方法
発言  Yuki  - 09/9/14(月) 10:35 -

引用なし
パスワード
   ▼VBA初心者 さん:
>[3列目が相沢だったら]に加えて["3列目が相沢"かつ"6列目が24"だったら]という条件にしたい場合は教えてもらった構文をどのように変更すればよいでしょうか?

最初に 相沢 でAutoFilterをかけて抽出されたデータで
24 をFindメソッドを実行すればどうでしょう。

【62903】Re:[複数条件で]Re:下から検索する方法
発言  kanabun  - 09/9/14(月) 12:01 -

引用なし
パスワード
   ▼VBA初心者 さん:
こんにちは。

>["3列目が相沢"かつ"6列目が24"だったら]という条件にしたい場合は教えてもらった構文をどのように変更すればよいでしょうか?

前の構文(Findメソッドを生かす)とすれば、ぼくも
Yukiさんのように AutoFilterを使うと思います。

↓別法です。
Sub Try2()
  Dim r As Range
  Dim i As Long
  Dim Data1, Data2
  Set r = Range("C1", Cells(Rows.Count, 3).End(xlUp))
  Data1 = r.Value
  Data2 = r.Offset(, 3).Value
  For i = UBound(Data1) To 1 Step -1 'お尻から検索
    If Data1(i, 1) = "相沢" Then  'C列検索値
      If Data2(i, 1) = 24 Then  'F列検索値
        r.Item(i).Resize(, 4).Select
        MsgBox "ここに見つかりました"
        Exit Sub
      End If
    End If
  Next
  MsgBox "見つかりませんでした"
End Sub

【62907】Re:[複数条件で]Re:下から検索する方法
お礼  VBA初心者  - 09/9/14(月) 22:20 -

引用なし
パスワード
   yukiさんkanabunさんありがとうございます。
教えていただいたとおりに組み込んでみたところ理想のものができました!
これからはもっと精進してお二人のようになれるようにがんばります。

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