こんにちは、みすくです。
VBAなら起点から末尾を求めてセルの範囲を取得するというのもできるのですが、
わたしはあらかじめ名前を定義しておいて、
スクリプトで利用するというのをよくやります。
=OFFSET(conf!$A$2,0,0,COUNTA(conf!$A:$A)-1,2)
OFFSETはExcel関数のOFFSET。
OFFSET(基準, 行数, 列数, [高さ], [幅])
[高さ]のパラメーターに、A列に入力されている件数 – タイトルぶんを
指定することで、可変で設定できるというわけ。
横方向も可変にしたいなら、[幅]にもカウントした件数を入れれば良いです。
=OFFSET(conf!$A$2,0,0,COUNTA(conf!$A:$A)-1,COUNTA(conf!$1:$1))
VBAで使うときは、Range(定義した名前)で使えます。
Option Explicit Dim confSh As Worksheet Private Sub init() Set confSh = ThisWorkbook.Worksheets("conf") End Sub Private Sub term() Set confSh = Nothing End Sub Function vLookUp(SearchTarget As String) On Error GoTo ERR_LBL vLookUp = Trim(WorksheetFunction.vLookUp(SearchTarget, confSh.Range("TITLE"), 2, False)) Exit Function ERR_LBL: vLookUp = "?" End Function Sub main() Call init Debug.Print vLookUp("A") '1 Debug.Print vLookUp("E") '5 Debug.Print vLookUp("Z") '? Call term End Sub
では、ごきげんよう