【VBA備忘録】ListObject(テーブル)で複数列を選択する(Vlookup)
2024年11月6日
みなさん、こんにちは
Excelのテーブル(ListObject)ってすごく便利なんですけど、
VBAで制御する場合
1列を選択(Listcolumn) or 全部を選択(DataBodyRange/Range)するのはすごく簡単なのに
複数列を選択するのってどうやるかわからない!!!
何が困るってVLOOKUPで2列目を先頭にしたいときですよね…
検索してもよくわからない~という方、下記をご参照ください!!!
List Objectで複数列を選択する
VLOOKUPで検索する
検索窓に対象の果物を入力するとListObjects(1)から値段を拾ってメッセージボックスで表示するプログラムを作っていきます。
EXCELの関数でやるかVBAでMATCHを使えば簡単にできますが、今回はVLOOKUPでやってみたいと思います。
ここで難関なのは1列目は「No.」なので2列目より後ろVLOOKUPの列を指定しないといけないところです。
List ObjectsをRangeでつなげる
ListObjectを複数選択する場合はRangeでListColumnsをつなげるとできます。
RangeをSetしとくとらくちんですよ
Set 複数列 = Range(ListObjects(1).ListColumns(最初の列).DataBodyRange, ListObjects(1).ListColumns(最後の列).DataBodyRange)
Code
Sub ListObjectでVlookup()
Set st = ActiveSheet
Set lo = st.ListObjects(1)
Set rg = Range(lo.ListColumns(2).DataBodyRange, lo.ListColumns(3).DataBodyRange)
nm = st.Cells(3, 5)
pr = WorksheetFunction.VLookup(nm, rg, 2, False)
MsgBox pr
End Sub
実行するとりんごの値段がわかります。
リンク
VBAListColumns,ListObject,VBA,VLOOKUP,テーブル,業務改善,高速化
Posted by shironecoworks