Excel VBA質問箱 IV

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

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


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

【7300】userform上での検索 KAZU 03/9/1(月) 22:32 質問
【7303】Re:userform上での検索 INA 03/9/2(火) 8:38 回答
【7346】Re:userform上での検索 KAZU 03/9/2(火) 22:17 質問
【7355】Re:userform上での検索 INA 03/9/3(水) 8:36 回答
【7428】Re:userform上での検索 KAZU 03/9/4(木) 21:04 質問
【7430】Re:userform上での検索 INA 03/9/4(木) 21:20 回答
【7431】Re:userform上での検索 KAZU 03/9/4(木) 21:49 お礼

【7300】userform上での検索
質問  KAZU  - 03/9/1(月) 22:32 -

引用なし
パスワード
   A   B   C  D  
0004  山  川  谷  
0012  下  上  中
0035  右  左  中
上記のような表を作りました。
userformにtextboxを作成して、Aのセル文字(0012)をtextboxに入力したときその行のB(下),C(上)、D(中)セル文字が各々のtextboxに表示されるようにするにはどうしたらいいでしょうか。
また、もしA列に同じ文字が入力された場合リスリボクスで表示したいのですが、方法がわかりません。ご指導お願いいたします。

【7303】Re:userform上での検索
回答  INA  - 03/9/2(火) 8:38 -

引用なし
パスワード
   ユーザーフォームに
Textbox1〜Textbox4 と CommandButton1 を配置して下さい。
ボタンを押すとシート上(A列)を検索して、各Textboxに値が代入されます。

Private Sub CommandButton1_Click()
Dim FindData As Variant

Set FindData = _
Worksheets("sheet1").Range("A:A").Find(TextBox1.Value, LookAt:=xlWhole)
   
  If FindData Is Nothing Then
   MsgBox "見つかりませんでした。"
   Exit Sub
  End If

  TextBox2.Value = FindData.Offset(, 1).Value
  TextBox3.Value = FindData.Offset(, 2).Value
  TextBox4.Value = FindData.Offset(, 3).Value

End Sub

【7346】Re:userform上での検索
質問  KAZU  - 03/9/2(火) 22:17 -

引用なし
パスワード
   ▼INAさん
同じ番号がA列にあった場合はどうでしょうか?また検索して得られた行のD列にそのUserformを使って文字列を追加したいのですがその場合について教えてください。よろしくお願いします。

【7355】Re:userform上での検索
回答  INA  - 03/9/3(水) 8:36 -

引用なし
パスワード
   >同じ番号がA列にあった場合はどうでしょうか?
A列に同じ値が複数あると言うことでしょうか?
TextBox1の値をA列から探すのですが、Findで見つかった最初の値が返されます。

>また検索して得られた行のD列にそのUserformを使って文字列を追加したいのですが
>その場合について教えてください。よろしくお願いします。
D列には既に値があるのではないのですか?
すでにTextBox4に代入されるようになっていますが、サンプルを書いておきます。
以下のように検索されたA列から右に3行オフセットさせて、D列を指定できます。
FindData.Offset(, 3).Value = TextBox5.Text

【7428】Re:userform上での検索
質問  KAZU  - 03/9/4(木) 21:04 -

引用なし
パスワード
   ▼INA さん:
A列に同じ値が複数ある場合その値を検索するにはどうしたらいいのでしょうか
たびたび申し訳ありませんがよろしくお願いいたします。

【7430】Re:userform上での検索
回答  INA  - 03/9/4(木) 21:20 -

引用なし
パスワード
   >A列に同じ値が複数ある場合その値を検索するにはどうしたらいいのでしょうか
その値の利用方法により、変わってくると思います。
重複する値がたくさんあるのであれば、
オートフィルターのほうが使い易いかもしれません。
オートフィルターであれば、抽出されたデータを一度に選択して扱えます。
Find〜FindNext を使うと、順番に検索して値を取得することになるので、
その都度、値を利用する方法になると思います。

【7431】Re:userform上での検索
お礼  KAZU  - 03/9/4(木) 21:49 -

引用なし
パスワード
   ▼INA さん:
用件がうまく伝えられず、何度も質問をしてすみませんでした。でも求めていた理想のformができました。ありがとうございました。

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