• ベストアンサー

Excel VBA 行の検索と値の取得

いつもお世話になっています。 スピンボックスで1からの数字を入力できるテキストボックスを作成しました。 ここに入力された数字は、行の先頭の数値を表します。(つまり連番) この数値を基に行のデータを検索、テキストボックスに値を取得したいのですが 検索の仕方が分かりません。 お力添えをよろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>ここに入力された数字は、行の先頭の数値を表します。(つまり連番) 連番であれば,わざわざ「検索」する必要はありませんね。 スピンボタンの値が1ならシートの1行目(2行目ですか?),2なら2行目(3行目ですか?),3なら3行目(以下同文)のセルの値を,ただ取ってくるだけです。 me.textbox2.value = worksheets("シート名").cells(me.spinbutton1.value, "A").value といった具合で。

suzupen
質問者

お礼

早々に御回答ありがとうございます。 実は、全然分からないように思えたのですが、よくよく読み解いていると すごく簡単にできました。 まさに希望どおりのものです。 このたびはありがとうございました!

関連するQ&A

  • exel2003 行の検索

    exel2003での質問です。 ある行の先頭の数値を取得する関数を作りたいのですが、どうしたらいいでしょうか? あるHPで LOOKUP(10^16,A1:A10) とすれば、検索範囲の行の最後の値を取得するというのを見つけました。 また、この検査値10^16というのは最大値という意味だとあり、 ならばここを最小値に変えればできるのかと思っていますが それをどこで探せばいいのかわかりません。 よろしければご教授願います。 また、それ以外の方法でも良いのでよろしくお願いします。

  • テキストボックス文字と同じ文字の行を先頭行へ移動

    Excelでテキストボックスに数値(例:1223-02)入力、検索ボタンを押すことにより同文字B16と一致することで先頭行を16行に表示移動したいのですがVBAの式をどなたかお解りの方よろしくお願いします。

  • エクセル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列の値の)文字すべてを赤色】にして表示していただきたいです。 分かる方がいましたらよろしくお願いいたします。

  • エクセル VBA オプションの検索

    エクセルのオプション検索で、検索対象が値のみの、フォントサイズ20が条件で検索しております。 エクセルを立ち上げる度に条件設定しないといけないので、できればウィンドウ枠の固定で固定した行に、テキストボックスを追加して入力した文字が含まれる行にエンターを押す度に移動できればいいのですが、宜しければコードをご教授お願いします。

  • Excel VBAでの質問です。

    ユーザーフォームでテキストボックスを用いて値を入力するときに、1桁の数字を入力したら何もしなくてもすぐに次のテキストボックスに移動して値を入力できるようにすることはできるんでしょうか。教えてください。よろしくお願いいたします。

  • DataGridViewで、選択した行の値を取得したい。

    VB2005環境です。 VB2005で、選択した行の、特定の列から値を取って、 テキストボックスに出力したいと思っています。 Itemプロパティかと思い、 TxtBox1.Text = Me.DataGridView1.Item _(0,Me.DataGridView1.CurrentRow.Index).ToString と記述してみました。1列目の、選択した行と交わるセルの 値が取れるかと思いきや、うまく取得できません。 方法を教えていただけないでしょうか? よろしくお願いします。

  • テキストボックスの値取得について

    javascript初心者です。 よろしくお願いいたします。 現在Webアプリケーションを作成しております。 そこで、テキストボックスに入力した値を 画面の切替なしで取得したいと思っております。 具体的にいいますと、 月日の月を入力する際に、 1.数値以外は入力できない(これは解決してます) 2.2桁まで入力できる(これは解決してます) 3.1桁目に1以外が入力された場合は、2桁目は入力できないようにする 4.1桁目に1が入力された場合は、0,1,2のみ入力できるようにする。 3と4番ができていません。 私の考えではテキストボックスの値を取得できれば 解決すると思っているのですが、 入力した瞬間に値を取得するという方法が分かりません。 いい方法があればご教授よろしくお願いいたします。 また、質問が不十分で解決するために情報が不足しているようでしたら 現段階で何が不足しているかわからないので お答えしますのでお願い致します。

  • エクセルVBAもし同じ値なら!!

    エクセルVBAもし同じ値なら!! 開いているBookのFormから違うBookのSheet1のA列にDATAを入力することはできます。 例)TextBox1の値があれば次の列に入れることはできます。 悩んでいるのは (1)TextBox1と違うBookの"Sheet1”のA列が同じ値なら  MsgBox "既に登録済みです。"と表示させて  ElseでDATAを入力させたいです。 '使用行を格納 lngYcnt_K = SH1.UsedRange.Rows.Count For lng = 1 To lngYcnt_K 'TextBox1と同じ値を見つけてテキストボックスの値を入力。 If CStr(TextBox1.Text) = CStr(SH1.Cells(lng, 1)) Then MsgBox "既に登録済みです。" Else 最終行 = SH1.Range("a65536").End(xlUp).Row TextBox1.Text = SH1.Cells(lng, 1) TextBox2.Text = SH1.Cells(lng, 2) End If Next lng どのようにすれば良いのでしょうか?? 教えて下さい!

  • Excelで値と値をくっつけたり、+1する方法を教えてください

    添付した画像のような表を作成しています(添付用に加工しています) A列とB列は、手入力します。  A列:2桁の半角英数  B列:3桁の半角英数 C列に入るものは、  11(固定された数字)+A列の値+B列の値+001から始まる連番 ですので、3行目でいうとC3に「11 A1 B22 001」(分かりやすく半角スペースを空けています)      4行目ですとC4に「11C3D44002」 という値をA列、B列に入力をしたら、C列に上記のような10桁の値を 自動で入力されるしたいのですが、関数などで行うことでできないものかと思い質問しました。 現状は、C列も手入力で行っておりまして、  ・最初の2桁は、固定数値  ・A列とB列の値を使用している  ・最後の3桁は001からの連番を使用している    ※終わり3桁は無条件で001~の連番にしている もし関数などで対応可能でありましたら、どのような数式にすればよいのか ご教示頂けるとありがたく思います。 よろしくお願い致します。

  • Excelの値貼り付けについて

    Excelの値貼り付けについて   A列  B列 1   1 2       2 3   3 4       4 5   5 6       6 7   7 8       8 9   9 10      10 A列・B列の1~1000行にランダムに数字が入力されており、A列の値を残したままB列の数字をA列に追加したいです。 同じ行でA・Bどちらにも数値が入力されていることはありません、かならずどちらか一方です。 関数を使わないと出来ないでしょうか? 検索してみましたが、見つからないためどうか宜しくお願い致します。