EXCEL VBA 絶対参照VLOOKUP検索

このQ&Aのポイント
  • EXCEL VBAを使用して、絶対参照を利用したVLOOKUP検索を実施する方法について教えてください。
  • 質問者は、商品マスターを絶対参照して、VLOOKUPのような動きをする検索を実現したいと考えています。
  • 具体的には、シート1の商品番号をキーにして、シート2を参照し、シート1の区分にA-Dの値を挿入したいとのことです。
回答を見る
  • ベストアンサー

EXCEL VBA 絶対参照VLOOKUP検索

お世話になります。 つい先ほども同じような質問させていただきましたが、VBAを使ってVlookupのような動きをする検索を実施したいのです。ただし、今回は商品マスターを絶対参照したいのです。 相対参照での処理は前回質問で回答者様からご教授いただきました方法で実現できました。 添付図のようにsheet1に基本データが入っています。 [検索]ボタンをクリックしたらsheet1の商品番号をキーにして、sheets2を参照してsheet1の区分にA-Dの値を挿入したいと思います。 sheet1、sheet2ともにデータ量が可変です。 sheet2の商品マスターを参照する際には絶対参照にしたいです。 どなたかご教授いただけますでしょうか? お忙しいところ何度も恐縮ですがよろしくお願い致します。 環境 WinsowsXP SP3

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

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

勘違いなさっていますが、先の回答は既に「絶対参照しています」。決して相対参照ではありません。 具体的にどういう状況で何を実現したいのか、このご相談は一回解決で打ち切って、改めて詳しい状況を添えて「やりたいことを目に見えるように」ご相談を書きなおしてみてください。

yakkun2338
質問者

お礼

keithinさん、ご連絡ありがとうございます。 誠に申し訳ございませんでした。 前回ご教授いただきました方法で絶対参照されておりました。私の環境のテストデータに問題があって値がうまく入らなかったのが相対参照されているためと勘違いしてしまいました。 大変失礼いたしました。 テストデータを作り直して再度実行した結果、前回keithinさんにご教授いただきましたロジックで絶対参照できており、完璧に実現できました。 このたびは本当に申し訳ございませんでした。

その他の回答 (1)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

> sheet2の商品マスターを参照する際には絶対参照にしたいです。 先ほどの質問における「回答」そのままで十分に対応可能です。 と言うかむしろ、コレをマクロで行いたい理由も不明瞭です。 ワークシート上でVLOOKUP関数を使いたくない理由って何でしょう? > 環境 WinsowsXP SP3 別にOSの環境はどうでも良いです。 どうせなら、エクセルのヴァージョンを記載しましょうね。 本件だとヴァージョンは全く関係しませんが、念のため。

yakkun2338
質問者

お礼

tsubuyukiさん、ご連絡ありがとうございます。 >先ほどの質問における「回答」そのままで十分に対応可能で>す。 →仰る通り、そのままで実現できました。 私の環境のテストデータに問題がありました。 >と言うかむしろ、コレをマクロで行いたい理由も不明瞭で >す。ワークシート上でVLOOKUP関数を使いたくない理>由って何でしょう? →前任者が作成したマクロを実行をした時に表示されるデータに新規フィールド(商品区分)の列を新たに1列追加する必要になりました。 ただ、私が未熟で前任者のロジックをいじれなかったので苦肉の策としてデータが表示する直前にこのVLOOKUPのロジックを追加して商品マスターシートを参照して新規フィールドとして商品区分を表示するためにご教授いただきたかったのです。 >別にOSの環境はどうでも良いです。 →申し訳ございませんでした。 肝心なExcelのverが抜けておりました。 このたびはありがとうございました。

関連するQ&A

  • EXCEL VBA VLOOKUPの様な検索したい

    お世話になります。 VBAを使ってVlookupのような動きをする検索を実施したいのです。 添付図のようにsheet1に基本データが入っています。 [検索]ボタンをクリックしたらsheet1の商品番号をキーにして、sheets2を参照してsheet1の区分にA-Dの値を挿入したいと思います。 sheet1、sheet2ともにデータ量が可変です。 どなたかご教授いただけますでしょうか? お忙しいところ恐縮ですがよろしくお願い致します。 環境 WinsowsXP SP3

  • Excel 絶対参照と相対参照の違い。

    VLOOKUP関数を用いて数式を列に作ります。 範囲が違うシートのセルを指定します。 その場合、テキストでいくと相対参照にしなくてはならないのですがなぜでしょう? 相対参照と絶対参照の違いがExcelのヘルプで見ても理解できません。 わかる方、教えてください。

  • Excelの絶対参照について

    Excelの絶対参照、相対参照について Excelの絶対参照について教えていただきたいです。 データの引用元(もしくは参照元)のシートで、一行増やしたり、一列減らしたりと編集を行ったときに、 引用先シートではズレることなく順応しているようにしたいです。 (例) 引用先(Aシート)    引用元(Bシート) A2='Bシート'!B2 B2 A3='Bシート'!B3 B3 A4='Bシート'!B4 B4 ↓ 引用先(Aシート)    引用元(Bシート) A2='Bシート'!B2 B2 A3='Bシート'!B4 B3←一行増やした A4='Bシート'!B5 B4   B5 このようにする場合は、$の絶対参照を引用先のAシートの各セルに付けておくのでしょうか。 それとも別に絶対参照を付ける必要はないのでしょうか。 質問内容が分かりにくくて申し訳ありません。 別ファイルや、別タブからデータを引用することが多いのですが、そのときに引用先では絶対参照を使った方がいい時と、使う必要はない時との違いが分からなくて……。 浅学でお恥ずかしい限りですが、ご教授願えればと思います。 よろしくお願いいたします。

  • ExcelのVlookupでアクセスを参照したい

    質問があります。 掲題の通りですが、ExcelのVlookupでACCESSのクエリを参照してレコードを取得したいです。 今まで、ACCESSのクエリをExcelにエクスポートして、それをExcelでVlookupで持ってきていました。それを、Accessから直接Vlookupでもってきたいです。 ADO+VBAでやるだろうとは理解していますが、どうも難しくわからないです・・・。コードの記述を含めてやり方を教授して頂けると幸いです。 画像をアップロードしたのでよろしくお願いいたします。 画像のA1-D5がExcelで、下のテーブルはACCESSのものです。 ACCESSのテーブルをExcelのシートにコピペしてVlookupすれば良いのですが、後学のため、それと応用を利かすためにAccessのクエリを直接参照してデータを取得する方法を知りたいです。 よろしくお願いいたします。 それと、もし、その他オフィスの項目で聞くべきでしたら教えて頂ければ幸いです。 よろしくお願いいたします。

  • VBA VLOOKUP 別のファイルを参照

    VBA VLOOKUP 別のファイルを参照 いつもこちらでお世話になっている者です。 VBAの勉強をしております。 別のファイルからVLOOKUPで値を参照したいのですが、 範囲を指定してみましたが、 「worksheetFunctionクラスのVlookupプロパティを参照できません」 とのメッセージが出てしまいます。 なお、値は空白になる行もありますので、 if関数で回避してみましたがうまくいきません。 いろいろ試しましたが、何度やってもうまくいかないので こちらに質問させていただきました。 お詳しい方、ご伝授いただければ助かります。 よろしくお願い致します。 環境はExcel2007です。 Sub sample() Dim 範囲 As Range Dim wb As Workbook, wb2 As Workbook Dim r As Integer,intRow As Integer Workbooks.Open Filename:="***.xlsm" Set wb = ThisWorkbook Set wb2 = ActiveWorkbook Set 範囲 = wb2.Sheets("PvtSht2").Range("Database3") r = wb.Sheets("sheet1").Range("A28:N28").End(xlToRight).ColumnintRow = 3 With wb.Sheets("sheet1") Do Until .Cells(intRow, 1).Value = "" .Cells(intRow, (r + 1)) = Application.WorksheetFunction.If((Application.WorksheetFunction.VLookup(Cells(intRow, 1), 範囲, 2, False)) = 0, "", Application.WorksheetFunction.VLookup(Cells(intRow, 1), 範囲, 2, False)) intRow = intRow + 1 Loop End With End sub

  • エクセルVBAで行うVLOOKUPについて

    エクセル2000を使用しています。 いまいろいろVBAを使用してますが、わからないことがあります。 シート1に入力データ、シート2に参照のデータ USERFORM を使用し たとえばテキストBOX1にコードAと入れるとテキストBOX2に東京支店と表示し確認をできるようにしたいのです。東京支店は、シート2の参照データから引用してきます。 BOX1にAと入れてエンターを押した時点でVLOOKUPを実施させたいのですがいまいちわかりません。 シート2は A列にコード A,B,C,D,.... B列に東京支店、千葉支店... よろしくお願いいたします

  • マクロVLOOKUPの高速化

    シート1には13,000行、 シート区分マスターには25,000行において シート1の検索値からシート区分マスターを検索して ヒットしたらシート1に返したいです。 シート1のデータ行文行いたいです。 シート1の行数は常に変化、 シート区分マスターの行数は固定です。 以下の記述で検索を行いますが終了するのに 5分強かかります。 (下のほうに再計算0%→5%→70%→95%と表示されている) もっと早く処理させる方法はありますでしょうか? よろしくお願いします。 Sub 区分検索() '2010 年11月18日 'シート1のA列を検索値として 'シート区分マスターのA列を検索しヒットしたら 'シート区分マスターの該当行のE列をシート1のC列に転記 'データはそれぞれのシートともに2列目からである 'ヒットしない場合はシート1のC列は空白にする '検索値と転記するセルのシート選択 With Sheets("シート1") 'データ開始行のC2に式を入れる .Range("C2").Formula = _ "=IF(ISNA(VLOOKUP(A2,区分マスター!$A:$E,5,FALSE)),"""",VLOOKUP(A2,区分マスター!$A:$E,5,FALSE))" '数式入力 '式によって抽出されてC列に転記された値をコピーします。 .Range("C2").Copy .Range("C2:C" & .Range("A" & .Rows.Count).End(xlUp).Row) 'データ最終行までコピー .Columns("C:C").Copy 'コピーした値をC1から値貼付を行う .Range("C1").PasteSpecial Paste:=xlPasteValues 'C列を値に変換 Application.CutCopyMode = False End With End Sub

  • VLOOKUPの複数参照先

    こんばんは。 エクセルのVLOOKUPでの質問があります。 よろしくお願いします。 1つのbookの中にA,B,C,D...とシートがあります。 Aのシートにて、VLOOKUPを使ってデータの参照をしたいのですが、 B,C,D・・の複数のシートを参照先にしたいのですが、 可能なのでしょうか。 検索先の文字列に応じて検索シート先を変えられれば・・と 思っています。 もう一つ、参照先に目的の値がなかった場合、#N/Aが表示されるのですが、これを1などの数字にすることはできないでしょうか。 お願い致します。

  • 文字の色も参照 VLOOKUP

    VLOOKUPを使って、シート1に有るデータベースから 必要なデータを参照して、シート2に表示させています。この時シート1のデータの中には、いくつか 文字の色がついていて 目立つようにしているものがあります。これをVLOOKUPのように、同じくデータベースから参照して、抽出先データに反映させたいのですが、関数では出来ないようで、VBAでコントロールをする必要があるようで、調べたところ下記の様な、質問が過去にあり、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=968962 これを試してみましたが、あまり詳しく書かれていなく、私の解釈で作るとまったく動作しませんでした。 どなたか、わかる方もう少し補足情報をいただけませんか? よろしくおねがいします。

  • Excel VLOOKUPをVBAでやりたいのですが、分からなくて困っ

    Excel VLOOKUPをVBAでやりたいのですが、分からなくて困ってます。 Sheet1のC列2行目行こうにSheet2のI列のデータを取得し (A列にデーターが入っている分、(時と場合により表示数が違う為)) なおかつ Sheet1のD列2行目以降にB-Cの差し引きをおこなう 以上のことをSheet1をアクティブにした時VBAでおこなうには、? 教えて下さい。宜しくお願い致します。

専門家に質問してみよう