• ベストアンサー

エクセルで検索・表示の方法を教えてください。追加

追加の質問で恐縮ですが、教えてください。 VBAの記述が解らずお手数を掛けします。 Sheet2のD、E…と項目を増やしていく時 Sheet1のD列に項目を入れて増やしE列に表示させるには VBA記述のどこをどう書き換えて又は、書きましていけばよろしいのでしょうか 再度ご教授ください。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

ハクション大魔王のように・・・ 呼ばれて参上です。 Sheet2の項目がどの程度あるかわからないので、 勝手に下のように前回より2項目増やしてみました。 もっと簡単にできる方法はありますが、前回のコードに追加するだけでできますので、 やり方だけ・・・ もう一度コードを載せてみます。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim i As Long Dim wS As Worksheet Set wS = Worksheets("Sheet2") '←「Sheet2」は実際のSheet名に! If Application.Intersect(Target, Columns(1)) Is Nothing Or Target.Count <> 1 Then Exit Sub If Target <> "" Then If WorksheetFunction.CountIf(wS.Columns(1), Target) Then i = WorksheetFunction.Match(Target, wS.Columns(1), False) With Range("E1") .Value = wS.Cells(i, 2) .Offset(1) = wS.Cells(i, 3) .Offset(2) = wS.Cells(i, 4) '←E1セルの2行下にSheet2のD列を .Offset(3) = wS.Cells(i, 5) '←E1セルの3行下にSheet2のE列を End With Else MsgBox "該当データはありません。" End If End If End Sub ※ コード内のコメント部分が増えた項目になります。 ※余談ですが・・・※ この質問だけを見る方もいらっしゃると思います。 その場合質問内容が理解できないと思います。 当方の方法がベストとは限りません。 誰が見ても理解できるような質問にした方が、もっとよい回答があると思いますよ。m(_ _)m

autocampin
質問者

お礼

有り難う御座います。 大変役立ちました。 ご指摘事項も注意いたします。 有り難う御座いました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで検索・表示の方法を教えてください。

    Sheet1のA列にそれぞれの名前を入力し   A 1 aさん 2 bさん 3 cさん Sheet2に各人のリスト   A   B   C 1      身長 体重 2 aさん  160  65 3 bさん  170  70 4 cさん  155  60 と記入していきリストを作成しておき それをSheet1のD列 E列に aさんの名前をクリックすると aさんの     身長  160           体重  65 などリストを表示させたいのですが、 Sheet1のA列の名前表示は動かないで bさんをクリックするとE列の結果だけ変わるように したいのですが。関数がわかりません。 教えてください。

  • EXCEL表示シートのみ選択

    A B G I 1 - - - - 2 - - - - 3 - - - - 4 - - - - 5 - - - - 表示上は上記のようになっていますが、C,D,E,F,H列が 非表示なっている状態で、非表示になっている列にも値が はいっています。 仮にこの状態で、A列からI列までをコピーして別シートに ペーストした場合、非表示の列もペーストされます。 このような感じの時に非表示の列は貼り付けせずに表示列のみを貼り付けるようなことは可能でしょうか? VBでコードを記述することになるとおもうのですが、 どなたかご教授下さい。お願い致します。

  • エクセルのマクロで検索機能を使いたいのですが

    お尋ねします。 エクセルのブックにsheet1とsheet2のシートがあります。 sheet1には、A1列料理名、B1列野菜、C1列和洋中の項目が入っており、値は、2行目から入っています。 sheet1のB列には、複数の野菜が入っている場合もあります。 sheet2には、A1列番号、B1列野菜(1種類しか入っていません)の項目があります。 sheet2の1行目は項目名で、2行目からA2が1、B2がナスというように B2列は、十数行あり、sheet2のB行の野菜を選択し、sheet1のB列を検索し、ヒットすれば、D2にヒットした野菜を記入します。 それを繰り返し、sheet2の野菜名を選択し、sheet1の料理名に該当の野菜が含まれるかを記載したいのですが、マクロの記述をどのようにすればいいでしょうか? よろしくお願いします。 sheet1  A        B      C    D    E ハンバーグ  タマネギ      洋   タマネギ 卵焼き              和   ギョウザ   白菜、にんにく   中   白菜   にんにく sheet2 A B 1 ナス 2 タマネギ 3 白菜 4 にんにく 5 キャベツ 6 人参 sheet1のD列から入っている野菜をD列、E列、F列とそれぞれ 野菜名を入れていきます。 すみませんが、お助けください。

  • excel vba 検索の方法について

    excel vba 検索の方法について sheet1とsheet2があり sheet1のA列に10列(全て8桁の数字)文字が並んでいます。 sheet2のA列には1000列(全て8桁の数字)文字が並んでいます。 sheet1のA列とsheet2のA列で同じ文字がある場合 sheet2のA列の同じ文字の隣のsheet2のB列に◎がつくような vbaが書きたいです。 A列の文字は消したり、文字を変えたりします。 コマンドボタンに書いて、ボタンを押せば B列に◎がつくようにしたいです。 ご教授お願いします。

  • エクセル リストから検索して部名を表示させたい

    エクセル初心者です、宜しくお願いします。 会社にてExcel2002を使用しております。 以下の様に2種類のシート別のデータがあります。 Sheet1には今期分の製番一覧表、Sheet2には今月に 取引のあった製番が入力されております。 Sheet2の列EへSheet1から検索して部名を表示させたい のです。Sheet1のデータは200ぐらいあり重複はしており ません。 ------------------------------------------------- Sheet1今期分の製番一覧表 列A A部 11111-1111-1 33333-3333-3 44444-4444-4 88888-8888-8 列B B部 22222-2222-2 55555-5555-5 66666-6666-6 77777-7777-7 ------------------------------------------------- Sheet2 今月に取引のあった製番 列A 製番 列B 金額 列C 数 列D 合計金額 列E 部名 ------------------------------------------------- マクロや関数について全く経験がありません。 どなたかご教授ください。よろしくお願いします。

  • エクセルの検索する関数について

    エクセルで質問です。 sheet2のA、B列の中から、sheet1のA、B列で同じ組み合わせの数字を探す。同じ組み合わせで見つかれば、sheet1の見つかった列に、D列÷E列の数字をG列に表示する関数の式を教えてください。 関数は不慣れなので宜しくお願いします。

  • Excelで複数のSheetにある数字をひとつのSheetにまとめる

    あるExcelファイルに5個のSheetがあります。Sheet1~Sheet4までは週間の項目実績です。A列はアイテム、B列は目標、C列は実績、D列は差異、E列は達成率。 このSheet1~4を合算したものをSheet5に表示したいのですが、VBAでどのように作成すれば良いのですか? =Sheet1A1+Sheet2A2+ .....ってやるの面倒なので。

  • エクセルVBAで検索の早い方法

    こんにちは。 エクセルのVBAでお教え下さい。 シート1のA列に下記の様なデータがあって ABCDは業者コードだとおもって下さい。 A A B C D D 違うシート2に下記のように業者コードの マスターがあるとします。 A D シート1の全てのA列がシート2のマスターと 合致するかどうかで、合致しなかった場合にエラーを 表示するようなことをしたい(この場合、BCがエラー)のですが、どういうプログラムにするのが処理的に早いでしょうか? ぐるぐる順番に回す方法以外になにか良い手は ありますでしょうか? お教え下さい。よろしくお願いします。

  • EXCEL VBA で シートをループして列を非表示にした際の画面の表示制御

    EXCEL VBA で それぞれのシートをループして同じ列を非表示にするVBAを記述しました。処理は成功したのですが、画面がその通りにチカチカして余計な時間がかかっているような気がしています。 こういう時って、SCREENUPDATING=FALSEみたいな記述をすると聞いたのですが、合っておりますでしょうか? 試しにコードの最初に記述してみたのですが、一番最初のシートのみしか非表示処理がされないでVBAが終わってしまっています。改善の方法をご存知の方教えてください。どうぞよろしくお願いします。

  • VBA:シートの追加とセルからの名前変更

    いつもお世話になっています。 ExcelのVBAで実装可能かと思うのですが、ご教授願いたく思います。 今回、大量のシートの追加(最後尾)とその追加したシートの名前を 変更するVBAを制作したいと思ったのですが シートの追加とシートの名前変更(ソースの直接記入)までは、 なんとか出来ましたが 名前を、とある範囲のセルにある文字列に変更するという事がしたいです。 例えばE1:E5までの範囲にある文字列 「あ」 「い」 「う」 「う」 「う」 とあったら、かぶっているものは除き、「あ」「い」「う」という名前のシートを3つ追加したいという事です。 上記、もし実装可能であればご教授お願いします。 また、可能だけどokwaveの入力欄では面倒だし説明しづらい、という回答でもokです。 その場合、参考サイトなど教えて頂けると幸いです。 何卒よろしくお願いいたします。

専門家に質問してみよう