• ベストアンサー

ユーザーフォームを使った検索について

 仕事で使うために、VBAを勉強中ですが、検索の段階でつまずいてしまいました。自分なりに色々やってみたのですが、どうしてもうまくいきません。自分の知識不足が原因なのですが、どこをいじったらよいのかわからないでいます。  シート"一覧"にA列から整理No、職員番号、職種、氏名・・・・という風に、40列、130行程度データが入ります。 ユーザーフォームに複数のテキストボックスを作り、氏名を入力することで、任意のテキストボックスにその行のデータを返すようにしたいのですが、検索すると、アクティブセルの値が表示されます。  よろしくお願いします。

noname#79482
noname#79482

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>検索すると、アクティブセルの値が表示されます。 ここまでは正常に動いているようですね。 基本的なヒント1 Textbox1 = ActiveCell.Offset(0,1) Textbox2 = ActiveCell.Offset(0,2) 基本的なヒント2 Textbox1 = Cells(ActiveCell.Row,1) Textbox2 = Cells(ActiveCell.Row,2)

noname#79482
質問者

補足

大変申し訳ありません。コードの添付に失敗して、同じ質問をコード付きで再度アップいたしました。

関連するQ&A

  • ユーザーフォームを使った検索について

     仕事で使うために、VBAを勉強中ですが、検索の段階でつまずいてしまいました。自分なりに色々やってみたのですが、どうしてもうまくいきません。自分の知識不足が原因なのですが、どこをいじったらよいのかわからないでいます。  シート"一覧"にA列から整理No、職員番号、職種、氏名・・・・という風に、40列、130行程度データが入ります。 ユーザーフォームに複数のテキストボックスを作り、氏名を入力することで、任意のテキストボックスにその行のデータを返すようにしたいのですが、検索すると、アクティブセルの値が表示されます。  よろしくお願いします。 Private Sub cmb検索_Click() Dim frange As Range Dim frow As Long If (txt検索氏名 = "") Then MsgBox "氏名を入力して下さい。", vbExclamation Exit Sub End If Set frange = Worksheets("一覧").Columns(4).Find(what:=txt検索氏名.Text,LookIn:=xlValues, lookat:=xlWhole,searchorder:=xlByRows) If (frange Is Nothing) Then MsgBox "入力された氏名が見つかりませんでした。", vbExclamation Exit Sub End If frow = frange.Row txt検索整理番号.Value = Cells(検索データ行, 1).Value txt検索職名.Value = Cells(検索データ行, 2).Value txt検索職員番号.Value = Cells(検索データ行, 3).Value txt検索氏名.Value = Cells(検索データ行, 4).Value txt検索フリガナ.Value = Cells(検索データ行, 5).Value ’以下40行程度 End Sub

  • Excelユーザーフォームでのデータ検索

    初心者の質問で申し訳ございません。 ユーザーフォームを利用して検索ボタンを作ろうと考えています。 ユーザーフォームでテキストボックスを2個と コマンドボタン1個を作成し、 テキストボックス1に検索したい氏名を入力して コマンドボタンを押すと、 ワークシート(ワークシート名、データ)に作成されたデータのD列から 一致するものを検索し、 一致したデータのA列にある「番号」をテキストボックス2、 表示する。 というマクロが書けず困っています。 よろしくお願いします。

  • ユーザーフォームについて

    エクセル2002です。 ユーザーフォーム内のテキストボックスを使用して、 (1)A1のセルに1と入力されている状態でマクロを起動した場合、 (2)ユーザーフォーム内のテキストボックスには2と表示される (3)ユーザーフォーム内のボタンを押すと、A2のセルに2と入力される。 このような流れで、A列のデータ最終行に番号をふっていきたいです。 (A列のデータ最終行がA30なら、A31に31と番号をふる) ユーザーフォームのテキストボックスとボタンは作ってあるのですが、 それぞれに入れるコードを教えていただけないでしょうか。 よろしくお願いします。

  • Excelユーザーフォームでのデータ検索

    現在Excelマクロの勉強中ですが、ユーザーフォームでテキストボックスを4個とコマンドボタン1個を作成し、テキストボックス1にコードを入力してコマンドボタンを押すと、ワークシート(ワークシート名、住所録)に作成されたデータのA列からコードを検索(データは2行目から始まる)し、一致したデータのB列にある「名前」をテキストボックス2、C列の「住所」をテキストボックス3、D列の「電話番号」をテキストボックス4に表示する。 というマクロが書けず困っています。 わかる方教えてください。

  • ユーザーフォームで教えてください。

    ユーザーフォームで教えてください。 エクセルシートで、A列に1から100までナンバーがあり、 B列~E列までデータが入っている表があります。 テキストボックスにナンバーを入力(もしくはスピンボタン)して 「検索」のコマンドボタンを押すと、B列以降のデータが各テキストボックスに表示される。 という形にしたいのですが、やり方が分からず困っています。 これまでは表の外に最初の行と最後の行を表示させて、 それを変数として扱い、「前」、「次」のコマンドボタンで1ずつ増減させて 表示していたのですが、ナンバーから直接表示させたほうが効率が良いと思いました。 (データが少ないときはよかったのですが。) 希望としては、 例としてテキストボックス1に「50」と入力する。(またはスピンボタンで50を選択) コマンドボタン「検索」でナンバー50のB列~E列のデータをテキストボックス2~5へ表示。 コマンドボタン「前」「次」を配置し、「前」でナンバー49、「次」でナンバー51のデータを表示。 1もしくは100(最後のナンバー)のときに「前」「次」を押してもデータは表示せず、 メッセージで「これが最初(最後)です」と表示。 という感じです。 できればでいいのですが、 ナンバー50のデータが表示された状態で、 B列以降のデータを直してナンバー50の行に上書きする「修正」、 表示された行を削除して1行上にずらす「削除」の コマンドボタンがあると助かります。 長くなってしまいましたが、よろしくお願いします。

  • ユーザーフォームでの任意の文字を含む検索について

    初心者の質問で申し訳ございません。 ユーザーフォームを利用して検索ボタンを作りました。 ユーザーフォームでテキストボックスを2個と コマンドボタン1個を作成し、 テキストボックス1に検索したい氏名を入力して コマンドボタンを押すと、 ワークシートに作成されたデータのD列から 一致するものを検索し、 一致したデータのA列にある「番号」をテキストボックス2、 表示する。 このサイトで教えていただき、以下のようなプログラムで 検索することができました。 しかし、テキストボックス1の文字が完全に一致すれば結果は出るのですが、 文字を含むものを検索するように改良したいのですがどのようにすればいいのか 分からず困っています。 よろしくお願いいたします。 ************************** Private Sub CommandButton1_Click() Dim res  If TextBox1.Text <> "" Then   res = Application.Match(TextBox1.Text, Sheets("データ").Columns(4), 0)   If IsNumeric(res) Then    TextBox2.Text = Sheets("データ").Cells(res, "A").Value   Else    TextBox2.Text = "Not Found"   End If  Else   TextBox2.Text = ""  End If End Sub

  • エクセル2007VBAで検索するコードを知りたい。

    エクセル2007(Excel2007)のVBAで【検索と置換】と同等の機能をもった検索アプリケーションを作りたいのですが、 そのコード(コマンドボタンを実行したときのコード)を教えていただけないでしょうか。 (おそらくですが、リストボックスのコードも必要だと思います。) 正しくは、【検索と置換】から【置換】機能を無くしたものとイメージしていただきたいです。 ●設置するもの ユーザーフォーム(UserForm1) テキストボックス(TextBox1) コマンドボタン(CommandButton1) リストボックス(ListBox1) ●仕様 ユーザーフォームのテキストボックスに入力してコマンドボタンを押すと、検索対象を見つけ、 リストボックスにその対象一覧を行ごとに表示するものになります。 ●検索するときの条件 (1)大文字と小文字を区別しない (2)半角と全角を区別しない (3)部分一致すれば(一部でも一致すれば)検索対象にする (4)今、開いているワークシート上の「全てのセルが検索対象(列や行を指定しない)」 ※検索されたセルの存在する行ごとに、ユーザーフォームのリストボックスに(1行ずつ)表示したいです。 そして、リストボックスに表示されたデータのうち、どれか1つを選ぶと、その選択対象の行の【D列】にアクティブセルを移動するようにしたいです(画面もアクティブセルが見える位置にスクロールします)。 ●リストボックスに(1行ごとに)表示するもの● ↓↓↓ (左から)I列の値、D列の値、O列の値、Q列の値(→4列の値になります) ※リストボックスにQ列の値が表示された場合のみ(Q列に何かしらのデータがある場合のみ)、 リストボックス上の【その行の(I列の値、D列の値、O列の値、Q列の値の)文字すべてを赤色】にして表示していただきたいです。 分かる方がいましたらよろしくお願いいたします。

  • フォームでのデータ検索

    ACCESS 2000 OSはWin2000を使っています。 フォーム内にコード検索の枠とボタンを作成して、データを検索しています。 フォームには個人データが表示されており、検索枠に個人コード(例えば:00131)を入力して検索ボタンを押すとフィルタがかかるようになっています。 VBAのコードを書いていて、他のフォームで同様のことをするとうまくいくのですが、このフォームではどうしてもうまくいきません。 しかも個人コードではなく、もう一つ別のコードなどで検索をかけるとうまくいったりします。 どうしてこのような問題が発生するのでしょうか? そして、どうすれば解決できるのでしょうか? どなたか、ご教授お願いします。 下記にVBAコードも表示させておきます。 Private Sub 個人NO検索_bt_Click()  Me.Filter = "[個人NO] Like " & Me.[個人NO検索]  Me.FilterOn = True End Sub 個人NO:個人NOがあらかじめ表示されているテキストボックスです。 個人NO検索:検索したい個人NOを入力するところです。

  • ユーザーフォームに入力値を活用する方法

    エクセルのマクロについて質問です。 (1)ユーザーフォームのテキストボックスに数字入力 (2)「アクティブセル」から「アクティブセルの列数+(入力した数字-1)」の列までのセルに背景色を付ける というようなマクロを作りたいです。 ユーザーフォームは設置できたのですがテキストボックスに入力した数字をセル選択に関連付ける方法がよくわかりません。 詳しい方がいらっしゃいましたらご教授いただければありがたいです。 例:アクティブセルが「G6」でテキストボックスには「3」と 入力した場合には G6、H6、I6の背景に色が付く

  • エクセルVBA ユーザーフォーム 検索

    現在VBAにてユーザーフォームにて入力したデータをシート1に転記するものを作成しました。 この転記したデータを生かして作業したいと考えております。 データは商品データで A    B C E F 商品コード 商品名  区分  単価  備考 となっており ユーザーフォームも TEXTBOX1=A TEXTBOX2=B と言う様になってます。 現在考えているのがこのデータの一部を変更したい場合、コマンドボタンを押すと商品コード入力用boxがでてきて、商品コードを入力するとA列から検索し該当する商品データをユーザーフォーム上に表示するようにしたいのです。 そのデータがA75行にあったとします。 そのユーザーフォーム上で単価を変更した場合検索した行(A75行)にそのまま上書きする様にしたいです。 説明がうまくできてないかも知れませんが、どなたかご教授願います。

専門家に質問してみよう