下記Functionの引数は
dst_sがドロップダウンリストを作成するシート
src_sがドロップダウンリストのリストを記載しているシート
rがdst_sシートのセル、上の例では”H2”
tがsrc_sのリストのタイトル、上の例では”Language”
Call make_selection(ActiveSheet,ThisWorkbook.Sheets("Config"),"H2","Language")
のように使います。
Function make_selection(dst_s As Worksheet, src_s As Worksheet, r As String, t As String) Dim type_r As Long, type_c As Long, area As String ' ドロップダウンリストのあるシートの1行目から t の文字列を探し、 type_r = 0 On Error Resume Next type_r = Application.WorksheetFunction.Match(t, src_s.Rows(1), 0) On Error GoTo 0 If type_r = 0 Then Exit Function ' その列数を取得します。 type_c = src_s.Cells(1, type_r).End(xlDown).Row ' ドロップダウンを示す文字列を作成します。 area = "=" & src_s.Name & "!" & src_s.Cells(2, type_r).Address(0, 0) & ":" & src_s.Cells(type_c, type_r).Address(0, 0) ' ターゲットセルにドロップダウンリストを作成します。 With dst_s.Range(r) .Clear .Borders(xlEdgeTop).LineStyle = xlContinuous .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeRight).LineStyle = xlContinuous .Borders(xlEdgeLeft).LineStyle = xlContinuous .Validation.Add Type:=xlValidateList, Formula1:=area .Locked = False End With End Function
0 件のコメント:
コメントを投稿