Excel VBA質問箱 IV

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

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


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

【26042】同一ブック内シ-ト非表示検索 改造したいな 05/6/22(水) 14:46 質問[未読]
【26064】Re:同一ブック内シ-ト非表示検索 kobasan 05/6/22(水) 18:31 回答[未読]
【26069】Re:同一ブック内シ-ト非表示検索 kobasan 05/6/22(水) 19:32 発言[未読]
【26151】Re:同一ブック内シ-ト非表示検索 改造したいな 05/6/24(金) 17:06 お礼[未読]

【26042】同一ブック内シ-ト非表示検索
質問  改造したいな  - 05/6/22(水) 14:46 -

引用なし
パスワード
   早速ですが、"1"というシートでユーザーフォームを展開しText boxにidn(数字)を
入力し、”ENTER”というコマンドにより"4"というシート内から検索を実行し、
同一のユーザーフォームに検索結果を反映させ、入力が完了すると完了というコマンドによりそのユーザフォームを閉じ、内容を"1"というシートに反映させるのですが、
マクロの記憶で行うと、"1"→"4"→"1"とシートが移動しています。
検索時に、"1"シート上だけで一連の作業を行いたいのですが、findを使った場合
検索対象範囲指定は、どこにいれるべきなんでしょう?
’1"シート上にてユーザーフォーム展開
’idn入力
Private Sub enter_Click()
'マクロ記憶部
Sheets("4").Select
  Colums("B:B").Select

  With idn = Selection.Find(What:=idn, After:=ActiveCell,
        LookIn:=xlFormulas, LookAt _:=xlPart
    , SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, MatchByte:=False, SearchFormat:=False).Activate

End With
'ユーザーフォーム反映部
i = ActiveCell.Row
tid = Sheets("4").Cells(i, 1).Value
jid = Sheets("4").Cells(i, 2).Value



と続きます。
Selectionの部分に代入もできません。
Afterの部分、検索開始セルに入力した場合もエラーになります。
どなたか教えていただけないでしょうか。

【26064】Re:同一ブック内シ-ト非表示検索
回答  kobasan  - 05/6/22(水) 18:31 -

引用なし
パスワード
   ▼改造したいな さん:  こんばんは

こんな感じですか

>’idn入力
>Private Sub enter_Click()
>'マクロ記憶部
Dim r As Range
  Set r = Sheets("4").Columns("B:B").Find(What:=idn, LookIn:=xlValues, _
      LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)
>'ユーザーフォーム反映部
i = r.Row
>tid = Sheets("4").Cells(i, 1).Value
>jid = Sheets("4").Cells(i, 2).Value


Set r = のところ、または、

Set r = Sheets("sheet2").Columns("B:B").Find(What:=idn, _
      After:=ActiveCell, LookIn:=xlValues, _
      LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)

【26069】Re:同一ブック内シ-ト非表示検索
発言  kobasan  - 05/6/22(水) 19:32 -

引用なし
パスワード
   追加です
検索開始セルを指定したいのであれば

>Selectionの部分に代入もできません。
>Afterの部分、検索開始セルに入力した場合もエラーになります。

検索開始セルをSheets("4")の B1 に指定する場合

Dim r As Range
  With Sheets("4")
    Set r = .Columns("B:B").Find(What:=idn, After:=.Range("b1"), _
       LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
       SearchDirection:=xlNext)
  End With

【26151】Re:同一ブック内シ-ト非表示検索
お礼  改造したいな E-MAIL  - 05/6/24(金) 17:06 -

引用なし
パスワード
   ▼kobasan さん
大変ありがとうございました。with〜、set、の使い方も含め変数に置き換えて
実行が簡単にできた事、感謝します。
このような単純な質問に答えていただいたことも深く感謝いたします。
あと、現状では完全に検索内容と合致しない場合は、ユーザーフォームに何も反映しない
処理を自分で考えて作っていこうと思います。ありがとうございました。
また質問させていただく際はよろしくお願いします。

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