Excel VBA質問箱 IV

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

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


47820 / 76732 ←次へ | 前へ→

【33858】ユーザーフォームで検索結果をラベルに表示するには
質問  BOX  - 06/1/22(日) 20:57 -

引用なし
パスワード
   こんばんは、BOXです。
以前33399で質問し、ご回答いただいてその後丸投げの状態で
大変反省しております。FINDメソッドについて自分なりに
勉強してみました。そしてPonPonさんのコードを参考にして
下のようなコードを書いたのですがテキストボックスに入力した
文字列を部分一致検索で1個目2個目までは検索するのですが
3個目以上ある場合のコマンドボタン2を押したときのコード
が書けません。すべて検索して最初の検索した文字列と同じ
文字列をヒットした時に検索終了のメッセージボックスを
表示し終わりとしたいのです。どなたか教えて下さい。
よろしくお願いいたします。
VBAでしたいこと
テキストボックスに施設名の文字列を入力し
コマンドボタン1を押すとテキストボックスの
文字列をC6:P1000までの範囲で施設名を部分一致で検索し
そのヒットしたセルのA列コードをラベル5にB列地名をラベル6に
C列からP列のヒットした文字列をラベル7に表示し
コマンドボタン2を押と下のシート構成でいくとC1を再度ボタン2を
押とF2をと検索しC1になった時検索終了とする。

シートの構成
A    B  C    D     E     F・・・   P
 コード  地名  基点  施設名1   施設名2  施設名3・・・施設名13
1.1234 東京 東京駅 東京タワー 国会議事堂 東京都庁 
2.1235
3.1236


100

ユーザーフォームの構成

テキストボックス コマンドボタン1
         コマンドボタン2

ラベル5 ラベル6 ラベル7
考えてみたコード
Private Sub CommandButton1_Click()
  Dim 最初に見つかったセル As Range
  Dim 次に見つかったセル As Range
 Sheets("旅費").Select
 With Range("C6:P1000")
  Set 最初に見つかったセル = .Find(What:=Me.TextBox1.Value, LookAt:=xlPart, SearchOrder:=xlByColumns)
  If Not 最初に見つかったセル Is Nothing Then
       Label5.Caption = Cells(最初に見つかったセル.Row, 1)
       Label6.Caption = Cells(最初に見つかったセル.Row, 2)
       Label7.Caption = Range(最初に見つかったセル.Address)
       Range(最初に見つかったセル.Address).Activate
      Else
      MsgBox "そのような施設はありません。"
      Exit Sub
      End If
  End With
End Sub
Private Sub CommandButton2_Click()
       Sheets("旅費").Select
       With Range("C6:P1000")
       Set 最初に見つかったセル = .Find(What:=Me.TextBox1.Value, LookAt:=xlPart, SearchOrder:=xlByColumns)
       Set 次に見つかったセル = .FindNext(最初に見つかったセル)
       If Not 最初に見つかったセル Is Nothing Then
       Label5.Caption = Cells(次に見つかったセル.Row, 1)
       Label6.Caption = Cells(次に見つかったセル.Row, 2)
       Label7.Caption = Range(次に見つかったセル.Address)
       Range(次に見つかったセル.Address).Activate
      
      ElseIf 次に見つかったセル <> 次に見つかったセル Then
        Set 次に見つかったセル = .FindNext(次に見つかったセル)
        
        Label5.Caption = Cells(次に見つかったセル.Row, 1)
        Label6.Caption = Cells(次に見つかったセル.Row, 2)
        Label7.Caption = Range(次に見つかったセル.Address)
        Range(次に見つかったセル.Address).Activate
        Else
       MsgBox "そのような施設はありません。"
      Exit Sub
      End If
    MsgBox "検索終了。この文字を含む施設はすべて検索しました。"
  End With
End Sub

0 hits

【33858】ユーザーフォームで検索結果をラベルに表示するには BOX 06/1/22(日) 20:57 質問
【33883】Re:ユーザーフォームで検索結果をラベルに... Jaka 06/1/23(月) 11:03 回答
【34077】Re:ユーザーフォームで検索結果をラベル... BOX 06/1/25(水) 23:52 お礼

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